JSONPath 查詢

📄 JSONPath Query

📐 工作原理與說明
用 JSONPath 表示式查詢 JSON 資料。
  • 語法:$ 為根,. 取屬性,[] 取下標,* 通配,.. 遞迴下降。
  • 過濾:[?(@.price < 10)] 按條件篩選陣列元素。
  • 類比:JSONPath 之於 JSON,相當於 XPath 之於 XML。
  • 注意:不同實現(Goessner 原版與各語言庫)在細節上存在差異。

Query and extract from JSON using JSONPath in your browser — filter and pick fields instantly.

常用表示式:
⏳ 等待輸入 匹配: 0 耗時: 0ms

📋 查詢結果

等待查詢...

📖 JSONPath 語法參考

表示式說明示例
$根節點$ - 整個 JSON
@當前節點@.price - 當前節點的 price
.property子屬性$.user.name
..property遞迴查詢$..id - 所有層級的 id
*萬用字元$.store.* - store 下所有子元素
[index]陣列索引$.items[0]
[start:end]陣列切片$.items[1:3]
[?(expr)]過濾表示式$.items[?(@.price>10)]
length()陣列長度$.items.length()

📚 深度解析:JSONPath 查詢器

💡 常見使用場景

  • 從大 JSON 提取子集。
  • 在日誌或大響應裡定位欄位:用 $.result.items[0].name 直接取出目標值,不必層層展開 JSON 樹。
查詢
`$.store.book[?(@.price<10)].title` 取低價書名。

❓ 常見問題(FAQ)

與 XPath 區別?
JSONPath 面向 JSON,語法更簡潔。
為什麼用 * 通配取不到深層欄位?
因為 * 只匹配一層。$.a.*.c 能取到 a 下一級的 c,更深的層級需用遞迴下降 ..(如 $..c 匹配任意深度的 c)。另外過濾表示式(如 $.items[?(@.price>10)])並非所有實現都支援,使用前先確認所用庫的語法相容度。
⚠️ 使用說明與注意事項
📖關於「JSONPath 查詢」 ▼

📝工具簡介

JSONPath 查詢。專為開發者打造的線上工具,純前端執行,程式碼不離開瀏覽器。