Cách dùng Kiểm Thử JSONPath
- Dán JSON của bạn (hoặc giữ nguyên dữ liệu mẫu cửa hàng sách).
- Nhập biểu thức JSONPath, hoặc nhấp vào một ví dụ.
- Xem các giá trị khớp và đường dẫn chính xác của từng giá trị, sau đó sao chép kết quả.
Cú pháp JSONPath
| Biểu thức | Ý nghĩa |
|---|---|
$ | Gốc của tài liệu |
.key hoặc ['key'] | Một thuộc tính con (dùng dấu ngoặc vuông cho khóa có khoảng trắng hoặc dấu chấm) |
[0], [-1] | Phần tử mảng theo chỉ số; số âm đếm từ cuối |
[0:3], [-2:] | Cắt mảng (slice) |
* | Ký tự đại diện: tất cả các phần tử con |
.. | Duyệt đệ quy: tìm ở mọi độ sâu ($..price) |
[?(@.price < 10)] | Bộ lọc: các phần tử mà biểu thức đúng; @ là phần tử hiện tại |
[0,2], ['a','b'] | Hợp của nhiều chỉ số hoặc khóa |
Bộ lọc
Bộ lọc hỗ trợ so sánh (==, !=, <, >=…), toán tử logic (&&, ||) và kiểm tra sự tồn tại ([?(@.isbn)]). Công cụ này đánh giá bộ lọc trong chế độ sandbox an toàn, nên biểu thức không thể chạy mã tùy ý.
Các triển khai khác nhau
JSONPath không có chuẩn trong nhiều năm cho đến khi RFC 9535 (2024) chuẩn hóa nó. Các thư viện vẫn khác nhau ở một số trường hợp đặc biệt: cú pháp bộ lọc, biểu thức chính quy và cách xử lý khóa bị thiếu. Công cụ này dùng JSONPath Plus, một triển khai JavaScript được dùng rộng rãi; hãy kiểm tra thư viện bạn đang dùng (Jayway trong Java, jsonpath-ng trong Python, AWS Step Functions, Postman) để biết cú pháp chính xác.
JSONPath so với jq
jq là ngôn ngữ biến đổi đầy đủ chạy trên dòng lệnh; JSONPath chỉ chọn giá trị. $.store.book[*].title trong JSONPath tương ứng với .store.book[].title trong jq. Để duyệt tài liệu và sao chép đường dẫn bằng cách nhấp chuột, hãy dùng trình xem JSON; còn với cú pháp ánh xạ của Make, Zapier và n8n, hãy dùng công cụ tìm đường dẫn JSON.
Cũng được tìm dưới tên: jsonpath online, trình kiểm tra jsonpath, bộ lọc jsonpath, truy vấn json, biểu thức jsonpath, test jsonpath online, đánh giá jsonpath.
Các công cụ dùng kèm tốt với Kiểm Thử JSONPath
- Định dạng JSON — Dán JSON để định dạng đẹp, nén hoặc kiểm tra.
- Kiểm tra JSON Schema — Dán schema và dữ liệu JSON để xem chính xác giá trị nào vi phạm quy tắc nào, hoặc tạo schema ban đầu từ dữ liệu mẫu.
- So sánh JSON — Tìm chính xác phần nào đã thay đổi giữa hai tài liệu JSON như phản hồi API, phiên bản cấu hình, dữ liệu mẫu hoặc file xuất, dưới dạng danh sách đường dẫn kèm giá trị cũ và mới.
- Kiểm tra OpenAPI / Swagger — Dán đặc tả API vào để kiểm tra theo schema OpenAPI chính thức, phát hiện tham chiếu hỏng và tham số path không nhất quán, đồng thời xem toàn bộ endpoint chỉ trong một cái nhìn.
Câu hỏi thường gặp
$.. nghĩa là gì trong JSONPath?
$..price tìm mọi thuộc tính price ở bất kỳ độ sâu nào.Làm thế nào để lọc một mảng trong JSONPath?
$.items[?(@.price > 10)] chọn các mục có giá lớn hơn 10.