Truy vấn JSONPath API

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ả.

POSTGEThttps://apibox.io.vn/v1/json-query
Dữ liệu & JSON▶ Dùng thử online

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).

Tham số

TênVị tríKiểuBắt buộcMặc định
jsonbodyobjectcóTài liệu JSON (object hoặc chuỗi JSON).
pathbody|querystringkhôngBiểu thức JSONPath bắt đầu bằng $.
pointerbody|querystringkhôngJSON Pointer thay cho path, ví dụ /a/0.
limitbody|querynumberkhông1000Số giá trị tối đa trả về.

Ví dụ

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"}'

Kết quả trả về

{
  "path": "$..book[?@.price < 10].title",
  "count": 2,
  "truncated": false,
  "values": [
    "Sayings",
    "Moby Dick"
  ],
  "paths": [
    "$['store']['book'][0]['title']",
    "$['store']['book'][2]['title']"
  ]
}

Ứng dụng

  • Lấy trường dữ liệu từ phản hồi API bên thứ ba trong công cụ no-code
  • Thử biểu thức JSONPath trước khi dùng trong code, hệ thống giám sát
  • Trích xuất giá trị từ file JSON lớn
  • Dạy và debug JSONPath

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.

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →