
Cách sử dụng
- Dán JSON vào ô JSON nguồn. Bấm Định dạng JSON để làm gọn; nếu JSON sai, công cụ báo lỗi.
- Mở các nhánh trong Cây tương tác và bấm vào key hay giá trị bất kỳ để sao chép JSONPath chính xác, ví dụ $.store.book[0].title.
- Gõ một phần key hoặc giá trị vào Tìm path để liệt kê mọi path chứa nó, ví dụ tên khách hàng trong một phản hồi API dài.
- Dán hoặc sửa path trong Bộ kiểm tra để xem giá trị path đó trỏ tới, hoặc thông báo lỗi nếu không khớp.
JSONPath là gì
JSONPath mô tả vị trí của một giá trị trong tài liệu JSON, giống như đường dẫn file mô tả vị trí của file trên ổ đĩa. Nó bắt đầu bằng $ cho toàn bộ tài liệu, rồi thêm .key cho thuộc tính của object và [n] cho vị trí trong mảng, đếm từ 0. Key có khoảng trắng hoặc ký hiệu được viết trong ngoặc vuông và dấu nháy, như $["first name"].
Bạn cần các path này khi viết code đọc phản hồi API, thiết lập tự động hóa không cần code (Zapier, Make, n8n), ánh xạ trường dữ liệu khi tích hợp hệ thống, hoặc viết kiểm thử. Bấm vào giá trị nhanh và chắc chắn hơn nhiều so với tự đếm từng lớp ngoặc.
Ví dụ
Với dữ liệu: { "store": { "book": [ { "title": "Dune", "price": 9.99 }, { "title": "Emma" } ] }, "first name": "Ann" }
| JSONPath | Giá trị |
|---|---|
| $.store.book[0].title | Dune |
| $.store.book[0].price | 9.99 |
| $.store.book[1].title | Emma |
| $["first name"] | Ann |
Bộ kiểm tra hỗ trợ những gì
Bộ kiểm tra đi theo path chính xác: key dạng chấm, key trong ngoặc với nháy đơn hoặc nháy kép, và chỉ số mảng. Nó không chạy wildcard ([*]), tìm đệ quy (..), cắt mảng ([0:2]) hay bộ lọc ([?(@.price < 10)]); các cú pháp này sẽ báo lỗi. Muốn tìm mọi chỗ khớp với một từ, hãy dùng Tìm path, vốn duyệt toàn bộ tài liệu.
Mỗi thư viện dùng một biến thể JSONPath hơi khác nhau. Chuẩn chính thức được công bố năm 2024 với tên RFC 9535; các path đơn giản mà công cụ sao chép hoạt động giống nhau ở mọi thư viện.
Câu hỏi thường gặp
Làm sao lấy JSONPath của một giá trị?
Dán JSON, mở cây và bấm vào giá trị. Path được sao chép, sẵn sàng dán vào code hoặc công cụ tự động hóa.
Chỉ số mảng bắt đầu từ 0 hay 1?
Từ 0. Phần tử đầu tiên của mảng là [0], phần tử thứ hai là [1].
Vì sao path của tôi báo không khớp?
Kiểm tra chính tả và chữ hoa, chữ thường của từng key (path phân biệt hoa thường), chỉ số mảng có tồn tại không, và bạn có đang dùng wildcard hay bộ lọc mà bộ kiểm tra không hỗ trợ không.
JSON của tôi có bị tải lên không?
Không. Việc phân tích và tìm kiếm diễn ra trong trình duyệt, nên phản hồi API chứa dữ liệu riêng tư không rời khỏi thiết bị của bạn.