JSON Path Tester
測試 JSONPath 表達式並從 JSON 資料中提取所需 值的工具。API 回應解析和資料分析的必備工具!
Result will appear here...
Common Patterns
Root
$Root object
All Books
$.store.book[*]All books in store
First Book
$.store.book[0]First book
Last Book
$.store.book[-1]Last book
Book Titles
$.store.book[*].titleAll book titles
Books < $10
$.store.book[?(@.price < 10)]Books cheaper than $10
Books with ISBN
$.store.book[?(@.isbn)]Books with ISBN
All Prices
$.store..priceAll prices (recursive)
Syntax Guide:
$- Root object@- Current object.or[]- Child operator..- Recursive descent*- Wildcard[start:end]- Array slice[?(<expr>)]- Filter expression
什麼是 JSONPath?
JSONPath 是一種用於查詢 JSON 資料結構中值的表達式語言。就像 XPath 對於 XML 一樣,JSONPath 允許您從 JSON 中提取特定資料。
主要語法
基本運算子
| 運算子 | 說明 | 範例 |
|---|---|---|
$ | 根物件 | $ |
@ | 當前物件(過濾器內部) | @.price |
. 或 [] | 子元素 | $.store.book |
.. | 遞迴搜尋 | $..price |
* | 萬用字元 | $.store.* |
[n] | 陣列索引 | $.store.book[0] |
[start:end] | 陣列切片 | $.store.book[0:2] |
[?(<expr>)] | 過濾器表達式 | $..book[?(@.price < 10)] |
陣列索引
// 第一個元素
$.store.book[0]
// 最後一個元素
$.store.book[-1]
// 範圍(從 0 到索引 2 之前)
$.store.book[0:2]
// 所有元素
$.store.book[*]
過濾器表達式
// 價格低於 10 的書籍
$.store.book[?(@.price < 10)]
// 有 ISBN 的書籍
$.store.book[?(@.isbn)]
// 類別為 fiction 的書籍
$.store.book[?(@.category === 'fiction')]
// 標題中包含特定單字的書籍
$.store.book[?(@.title.includes('Moby'))]
實際使用範例
從 API 回應中提取資料
// API 回應
{
"users": [
{ "id": 1, "name": "John", "active": true },
{ "id": 2, "name": "Jane", "active": false },
{ "id": 3, "name": "Bob", "active": true }
]
}
// 僅提取活躍使用者
$.users[?(@.active === true)]
// 所有使用者名稱
$.users[*].name
瀏覽巢狀資 料
// 複雜的 JSON
{
"company": {
"departments": [
{
"name": "Engineering",
"employees": [
{ "name": "Alice", "salary": 100000 },
{ "name": "Bob", "salary": 90000 }
]
},
{
"name": "Sales",
"employees": [
{ "name": "Charlie", "salary": 80000 }
]
}
]
}
}
// 所有員工的薪資
$..employees[*].salary
// 薪資 >= 90000 的員工
$..employees[?(@.salary >= 90000)]