JSONPath クエリ
JSONPath式を使って、長いJSONから必要なデータだけを取り出せます。たとえば全ユーザーの名前だけ、価格が10未満の商品だけ、といった抽出が可能です。条件による絞り込みや関数にも対応しています。
JSONPathでJSONを検索する方法
- 左の欄にJSONを貼り付けます。
- 「パス」欄にJSONPath式を入力します。必ず $ で始めます。例:$.users[*].name で全ユーザーの名前を取得。
- 結果は見つかった値のリストです。「各値の場所を表示」をオンにすると、それぞれのパスも表示されます。
よくある質問
$ はドキュメント全体です。.name でフィールドを取り出し、[0] はリストの最初、[-1] は最後、[*] はすべて、[1:3] は2番目と3番目、..name はどの深さにあるそのフィールドも探します。例:$.users[0].name、$..price
[?(...)] を使い、@ がチェックする各要素を表します。例:$.products[?(@.price < 10)] は価格が10未満の商品を取り出します。==、!=、<、<=、>、>= で比較でき、&&(かつ)、||(または)、!(否定)で条件を組み合わせられます。[?(@.isbn)] と書くと、そのフィールドを持つ要素だけを残します。
名前を角かっことダブルクォートで囲みます。例:$["first name"]、$.users[0]["first-name"]
1つのパスが複数の値に一致することがあるため、結果は常にリストです。一致が1つならリストの要素は1つ、何も一致しなければ空のリスト [] になります。
はい、フィルターの中で使えます。length(@.name) は文字数(リストなら要素数)、count(@.tags[*]) は見つかった値の数、value(@..color) は見つかった1つの値、match(@.name, "^An") は文字列全体がパターンに合うか、search(@.name, "An") はパターンを含むかを調べます。例:$.users[?(length(@.name) > 3 && match(@.name, "^B"))]
基本的な正規表現です:普通の文字、ドット(任意の1文字)、[abc] や [a-z]、[^abc](以外)、* + ? と回数指定、|(または)、グループ (…)、^ と $(文字列の先頭と末尾)、\d \w \s、\b(単語の境界)、\p のようなUnicodeの分類。先読み・後読み (?=…) と後方参照 (\1) はありません。その代わり、どんなパターンでも高速に動き、書き方が悪くてもページが固まることはありません。注意:クエリの中ではバックスラッシュを2つ重ねて書きます(例:パターン \d+ は \"\\d+\")。
いいえ。数値はJSONに書かれたとおりに保たれ、数値で絞り込むときも最後の桁まで正確に比較します。
いいえ。JSONはあなたの端末上で処理されます。
完全無料で、アカウントも不要です。
関連ツール
JSON YAML 変換JSONとYAMLを相互変換JSONとTOMLの相互変換JSONとTOMLを相互に変換JSON CSV 変換JSONとCSVの表を相互変換JSONからXMLへ変換JSONをインデント付きのXMLに変換JSONからTypeScriptへ変換サンプルJSONからTypeScriptのinterfaceを生成JSONからJSON SchemaサンプルJSONからJSON Schemaを生成JSON SchemaバリデーターJSONデータがJSON Schemaに合うかチェックJSONからZodサンプルJSONからZodスキーマを生成JSONからGoの構造体サンプルJSONからGoの構造体を生成