{
"store": {
"book": [
{ "category": "fiction", "author": "Author A", "title": "Book 1" },
{ "category": "reference", "author": "Author B", "title": "Book 2" },
{ "category": "fiction", "author": "Author C", "title": "Book 3" }
]
}
}
title của book đầu tiên trong mảng, hãy sử dụng biểu thức JSONPath này: $.store.book[0].title$.store.book[0].title:$: Tham chiếu đến nút gốc của tài liệu JSON — về cơ bản là toàn bộ cấu trúc.store: Trỏ đến thuộc tính store, là một đối tượng nằm dưới nút gốc.book: Truy cập thuộc tính book dưới đối tượng store, đây là một mảng.[0]: Chọn phần tử đầu tiên trong mảng book (chỉ mục bắt đầu từ 0).title: Truy xuất title của cuốn sách đầu tiên trong mảng.store, truy cập mảng book, chọn mục đầu tiên và trích xuất title của mục đó.0.$.store.book[?(@.category=='reference')].| Cú pháp | Mô tả |
|---|---|
$ | Nút gốc |
@ | Nút hiện tại |
.node or ['node'] | Truy cập các nút con |
[index] | Đánh chỉ mục mảng, hỗ trợ đếm từ 0 |
[start:end:step] | Cắt mảng |
* | Ký tự đại diện, khớp với tất cả các nút con |
.. | Ký tự đại diện đệ quy, khớp với tất cả các nút hậu duệ |
(<expr>) | Biểu thức động |
?(<boolean expr>) | Điều kiện lọc |
| Cú pháp | Mô tả |
|---|---|
^ | Truy cập phần tử cha của mục khớp |
~ | Lấy tên thuộc tính của mục khớp (dưới dạng mảng) |
@null(), @boolean(), @number(), @string(), @array(), @object() | Truy xuất các kiểu JSON cơ bản |
@integer() | Truy xuất kiểu số nguyên |
@scalar() | Truy xuất các kiểu phức hợp, chấp nhận undefined và các số không hữu hạn (khi truy vấn đối tượng JavaScript) |
@other() | Có thể được sử dụng với otherTypeCallback do người dùng định nghĩa |
@undefined(), @function(), @nonFinite() | Các kiểu không phải JSON được sử dụng khi truy vấn đối tượng JavaScript không phải JSON |
@path, @parent, @property, @parentProperty, @root | Bộ chọn viết tắt trong bộ lọc |
` | Thoát các chuỗi còn lại |
@['...'], ?@['...'] | Thoát các ký tự đặc biệt trong tên thuộc tính bên trong bộ lọc |
$.. | Truy xuất tất cả các thành phần cha |
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}| XPath | JSONPath | Kết quả |
|---|---|---|
/store/book/author | $.store.book[*].author | Tác giả của tất cả sách |
//author | $..author | Tất cả tác giả |
/store/* | $.store.* | Tất cả các nút con dưới store |
/store//price | $.store..price | Tất cả các trường giá |
//book[3] | $..book[2] | Cuốn sách thứ ba (chỉ mục bắt đầu từ 0) |
//book[last()] | $..book[(@.length-1)] or $..book[-1:] | Cuốn sách cuối cùng |
//book[position()<3] | $..book[:2] or $..book[0,1] | Hai cuốn sách đầu tiên |
//book[isbn] | $..book[?(@.isbn)] | Sách có ISBN |
//book[price<10] | $..book[?(@.price<10)] | Sách có giá dưới 10 |
//* | $..* | Khớp đệ quy với tất cả các nút con |