N2
NanToo
開発者向け

JSON Path Finder (パス取得・クエリ実行)

JSONをツリー表示し、クリックでJSONPath・JavaScript・Python・jq・lodashのパスを一括取得。JSONPathクエリ実行、再帰探索、フィルタ式にも対応。ブラウザ内完結。

$:{ 6 }object
company:"テック株式会社"string
founded:2015number
active:trueboolean
headquarters:{ 3 }object
city:"東京"string
country:"日本"string
address:{ 2 }object
employees:[ 3 ]array
[0]:{ 5 }object
[1]:{ 5 }object
[2]:{ 5 }object
products:[ 3 ]array
[0]:{ 3 }object
[1]:{ 3 }object
[2]:{ 3 }object

左のツリーでノードをクリックすると
各言語のパス表記が表示されます

JSONPath 構文リファレンス
構文説明
$ルート要素
$.key子要素アクセス
$[0]配列インデックス
$[*]全要素(ワイルドカード)
$..key再帰的に全keyを探索
[?(@.x>1)]フィルタ (==, !=, >, <, >=, <=)

JSON Path Finder (パス取得・クエリ実行)について

JSONPathとは

JSONPathはXPathのJSON版ともいえるクエリ言語で、JSON文書内の特定の値やノードを指すパス式を記述するための構文です。2007年にStefan Gößnerが提案し、2024年にはRFC 9535として標準化されました。

APIレスポンスやログファイルなど、巨大なJSONデータの中から特定の値を抽出する際に頻繁に使われます。jq、JavaScript (lodash)、Python (jsonpath-ng) など多くのツールや言語でサポートされています。

本ツールの機能

  • ツリービュー + クリックでパス取得: JSONを貼り付けるとツリー構造で表示。ノードをクリックするだけでそのパスを自動取得
  • 5言語同時出力: JSONPath・JavaScript・Python・jq・lodash の各表記を一括表示&コピー
  • JSONPathクエリ実行: パス式を入力してEnterで即実行。マッチしたノードをツリー上でハイライト表示
  • フィルタ式対応: $..items[?(@.price>1000)] のような条件フィルタで、配列内の特定要素を抽出
  • 再帰探索 (deep scan): $.. を使ってネスト階層を問わず全マッチを一覧表示

JSONPath構文一覧

構文説明
$ルート要素$
.key子要素アクセス$.name
[n]配列のn番目$.items[0]
[*]全要素(ワイルドカード)$.items[*].id
..再帰的探索(deep scan)$..name
[?()]フィルタ式[?(@.age>30)]

各言語でのパス表記の違い

同じJSON要素へのアクセスでも、言語やツールによってパスの書き方が異なります。本ツールでは以下の5形式を同時に出力します。

言語/ツールパス例
JSONPath$.users[0].name
JavaScriptdata.users[0].name
Pythondata["users"][0]["name"]
jq.users[0].name
lodash_.get(data, "users[0].name")

よくある質問

Q. 入力したJSONはサーバーに送信されますか?
いいえ。ツリー構築・パス生成・クエリ実行はすべてブラウザ内のJavaScriptで処理されます。サーバーへのデータ送信は一切ありません。機密性の高いAPIレスポンスやログデータも安全に解析できます。
Q. JSONPathの$..(ダブルドット)は何ですか?
再帰下降演算子(deep scan)です。JSONのネスト階層を問わず、指定したキー名に一致するすべてのノードを探索して返します。例えば $..name は、ルート直下でも深くネストされたオブジェクト内でも、すべての name キーの値を返します。
Q. フィルタ式はどこまで対応していますか?
比較演算子(==, !=, >, <, >=, <=)を使った単一条件フィルタに対応しています。文字列・数値・真偽値・nullとの比較が可能です。複合条件(AND/OR)には現在対応していません。
Q. 巨大なJSONファイルでも動作しますか?
ブラウザのメモリ内で処理するため、通常のAPIレスポンスや設定ファイル(数MB程度)であれば問題なく動作します。数十MB以上の超大規模ファイルの場合はjqなどのコマンドラインツールをお勧めします。
このツールを評価
(0件)