Công cụ này làm gì
Dán một tài liệu JSON, gõ truy vấn JSONPath, mọi kết quả khớp hiện ra ngay, mỗi kết quả kèm đường dẫn chuẩn hóa (như $['store']['book'][2]['title']) và giá trị. Bạn có thể sao chép mọi giá trị dưới dạng mảng JSON, hoặc mọi đường dẫn. Công cụ theo RFC 9535, chuẩn JSONPath do IETF công bố tháng 2 năm 2024. Lỗi cú pháp hiển thị số cột và dấu ^ dưới chỗ sai. Không có gì được tải lên, và truy vấn được chạy bằng bộ phân tích riêng, không thực thi mã.
Cú pháp tóm tắt
$ là gốc tài liệu; @ là phần tử hiện tại bên trong bộ lọc..name hoặc ['name'] chọn một thành viên; dùng ngoặc vuông cho tên có dấu cách hay ký hiệu.[0], [-1] chọn phần tử mảng từ đầu hoặc cuối; [start:end:step] là lát cắt như Python.* chọn mọi thành viên; .. tìm ở mọi độ sâu: $..price lấy mọi giá.[?filter] giữ phần tử thỏa điều kiện: $..book[[email protected] < 10], $..book[[email protected]].
Hàm: length(), count(), match() (khớp toàn chuỗi), search() (tìm ở bất kỳ đâu), value().
Ví dụ trên mẫu cửa hàng sách
Mẫu chính là tài liệu trong RFC 9535. $..book[[email protected] < 10].title trả về "Sayings of the Century" và "Moby Dick"; $.store..price trả về 8.95, 12.99, 8.99, 22.99 rồi 399 (giá xe đạp sau cùng, vì hậu duệ được duyệt theo chiều sâu, đúng thứ tự tài liệu); $..* trả về 27 giá trị.
Những quy tắc gây bất ngờ
So sánh chỉ nhận một giá trị: @.* == 1 là lỗi. Hai vế cùng không tồn tại thì == cho true. Kiểu không tự đổi: 13 == '13' là false. match() neo cả chuỗi, search() thì không. Kết quả có thể lặp: $[0,0] trả về phần tử đầu hai lần. Bài viết JSONPath, jq hay bộ lọc JavaScript so sánh ba cách; để định dạng đầu vào, dùng công cụ định dạng JSON.