パス抽出
対応: $ ルート、 .. 再帰、スライス、フィルタ。ワイルドカード [*] で配列の各要素の同名フィールドを一度に取れます。
よく使うテンプレートがあり、先に選んでから自分のパスへ直せます。
次の方法でも #data={"name":"Ada"} または #url=... データを流し込めます。読み取り後はアドレスバーから削除されます。
JSONPath は $.store.book[*].title のようなパスで文書からノードを抜きます。読み取り専用で原文は変えず、大きなレスポンスからリストや入れ子フィールドを取るのに向いています。API テストのアサーションや、ログから特定階層の配列を抜くときは、多層アクセスを手書きするより短くなります。
対応: $ ルート、 .. 再帰、スライス、フィルタ。ワイルドカード [*] で配列の各要素の同名フィールドを一度に取れます。
よく使うテンプレートがあり、先に選んでから自分のパスへ直せます。
パスを1行変えるとすぐ結果が見え、一時スクリプトより速いです。式の誤りや一致なしははっきり示されます。
ツリーページからパスをコピーして検証すると、綴りミスを減らせます。
抜いた配列は CSV 変換や型生成へ回せます。パスが正しいことを確認してからテストコードや jq スクリプトへ書いてください。
このページは原文を変えず、読み取り専用の調査に向いています。
{
"store": {
"book": [
{ "title": "Sayings of the Century", "price": 8.95 },
{ "title": "Slightly Bad", "price": 12.99 }
]
}
}
$.store.book[*].title
["Sayings of the Century", "Slightly Bad"]
考え方は似ています。ループで値を取るのではなく、パスで「どの部分か」を記述します。
よくある書き方は $..book[?(@.price<10)] のような条件です。構文はこのページのエンジンに従います。
パスと実際の構造の不一致がほとんどです。ツリーページでキー名、配列添字、オブジェクトか配列かを照合してください。
しません。一致した値のリストだけ出力します。
$ から浅いパスを書いて少しずつ深くします。 ライブラリごとに JSONPath の細部は少し違います。このページで通った式を基準に、使用言語の実装と照合してください。