JSONPath Tester online
Lấy dữ liệu trong JSON bằng JSONPath (RFC 9535: ký tự đại diện, tìm đệ quy, cắt mảng, bộ lọc có hàm) hoặc JSON Pointer, kèm đường dẫn của từng kết quả.
Kết quả
Bấm “Chạy” để xem kết quả.
API truy vấn JSON chạy một biểu thức JSONPath trên tài liệu JSON và trả về các giá trị khớp cùng đường dẫn chuẩn hoá của chúng. API theo RFC 9535: chọn thuộc tính và chỉ số ($.store.book[0], $["khóa có dấu cách"], chỉ số âm), ký tự đại diện, tìm đệ quy ($..price), cắt mảng có bước ([1:5:2], [::-1]), hợp ([0,2]) và bộ lọc như $..book[?@.price < 10 && @.category == "fiction"].title.
Bộ lọc hỗ trợ kiểm tra tồn tại ([?@.isbn]), so sánh số và chuỗi, &&, ||, !, dấu ngoặc, tham chiếu gốc ($) và các hàm length(), count(), match(), search() (biểu thức chính quy, có chặn mẫu chạy quá lâu như API regex).
Truyền pointer=/store/book/1/title thay cho path để đọc một giá trị bằng JSON Pointer (RFC 6901). Kết quả giới hạn 10.000 giá trị (limit, mặc định 1.000).
Dùng trong code của bạn
curl -X POST "https://apibox.io.vn/v1/json-query" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"json":{"store":{"book":[{"title":"Sayings","price":8.95},{"title":"Sword","price":12.99},{"title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"}]}},"path":"$..book[?@.price < 10].title"}'const res = await fetch('https://apibox.io.vn/v1/json-query', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"json": {
"store": {
"book": [
{
"title": "Sayings",
"price": 8.95
},
{
"title": "Sword",
"price": 12.99
},
{
"title": "Moby Dick",
"price": 8.99,
"isbn": "0-553-21311-3"
}
]
}
},
"path": "$..book[?@.price < 10].title"
}),
});
const data = await res.json();
console.log(data);import requests
res = requests.post(
"https://apibox.io.vn/v1/json-query",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"json": {"store": {"book": [{"title": "Sayings", "price": 8.95}, {"title": "Sword", "price": 12.99}, {"title": "Moby Dick", "price": 8.99, "isbn": "0-553-21311-3"}]}}, "path": "$..book[?@.price < 10].title"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/json-query');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{"json":{"store":{"book":[{"title":"Sayings","price":8.95},{"title":"Sword","price":12.99},{"title":"Moby Dick","price":8.99,"isbn":"0-553-21311-3"}]}},"path":"$..book[?@.price < 10].title"}',
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Tài liệu API → Nhận API key miễn phí
Hỏi đáp
Dùng phương ngữ JSONPath nào?
RFC 9535, chuẩn IETF năm 2024, trùng với cú pháp Goessner gốc ở các trường hợp thông dụng. Dạng lọc cũ ?(@.x) có ngoặc vẫn được chấp nhận.
Đường dẫn kết quả trông thế nào?
Dạng chuẩn hoá như $['store']['book'][0]['title'], mỗi giá trị một đường dẫn, cùng thứ tự.
Có truy vấn bằng JSON Pointer được không?
Được, pointer=/a/0/b trả về một giá trị và found=false nếu không tồn tại.