Truy vấn JSON bằng JSONPath

Truy vấn JSON bằng JSONPath: wildcard, tìm kiếm đệ quy, cắt mảng và biểu thức lọc như [?(@.price < 10)]. Kết quả cập nhật khi gõ. Không phải cú pháp jq.

Ví dụ:
Kết quả

$ là gốc; .name hoặc ['name'] chọn phần tử con; [0] chọn phần tử mảng; [*] chọn tất cả; .. tìm ở mọi độ sâu; [?(@.price < 10)] để lọc; [-1:] lấy phần tử cuối.

Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.

Công cụ Liên quan

Xem Tất cả

Truy vấn JSON (JSONPath) là gì?

Công cụ truy vấn JSON đánh giá biểu thức JSONPath trên JSON của bạn và hiển thị mọi giá trị khớp dưới dạng mảng JSON. Hỗ trợ wildcard, tìm kiếm đệ quy, cắt mảng và biểu thức lọc. Lưu ý: công cụ dùng cú pháp JSONPath ($.store.book[*].title), không phải cú pháp pipe của jq.

Cách sử dụng Truy vấn JSON (JSONPath)

  1. Dán JSON vào ô JSON đầu vào (hoặc bấm một ví dụ, thao tác này cũng nạp dữ liệu mẫu).
  2. Gõ Biểu thức JSONPath, ví dụ $..price.
  3. Đọc các giá trị khớp ở phần kết quả; nhãn cho biết có bao nhiêu kết quả.
  4. Sao chép mảng kết quả bằng Sao chép.

Ví dụ

Đầu vào
{"store":{"book":[{"title":"A","price":8},{"title":"B","price":12}]}}
Query: $.store.book[?(@.price < 10)].title
Đầu ra
[
  "A"
]

Khi nào nên dùng Truy vấn JSON (JSONPath)

Dùng để thử biểu thức JSONPath trước khi đưa vào công cụ chấp nhận JSONPath (API gateway, Kubernetes kubectl -o jsonpath, framework kiểm thử, giám sát). Nếu cần tính năng của jq như pipe, map hoặc dựng object, hãy dùng chính jq – những thứ đó không được hỗ trợ. Với một đường dẫn chính xác duy nhất, công cụ tìm đường dẫn JSON đơn giản hơn.

Truy vấn JSON (JSONPath) hoạt động như thế nào

Truy vấn được đánh giá bằng thư viện jsonpath-plus (JSONPath của Goessner cộng phần mở rộng). $ là gốc, .name hoặc ['name'] chọn một thuộc tính, [0] chọn chỉ số, [*] chọn mọi phần tử con, .. tìm ở mọi độ sâu, [start:end] cắt mảng (chỉ số âm đếm từ cuối) và [?(…)] lọc với @ là phần tử hiện tại. Biểu thức lọc chạy trong bộ đánh giá an toàn của jsonpath-plus, hỗ trợ so sánh và toán tử logic nhưng không thực thi JavaScript tùy ý. Kết quả luôn là một mảng các giá trị khớp, in với thụt lề 2 dấu cách.

Các Trường Hợp Sử Dụng Phổ Biến

  • Trích xuất mọi giá hoặc id từ phản hồi API
  • Thử JSONPath cho kiểm thử API hoặc quy tắc giám sát
  • Lọc phần tử mảng theo điều kiện
  • Thử nghiệm truy vấn kiểu jsonpath của kubectl

Lưu Ý Bảo Mật

Mọi thứ chạy cục bộ trong trình duyệt của bạn; đoạn mã bạn dán vào không được tải lên đâu cả.

Câu Hỏi Thường Gặp

Đây có phải jq không?

Không. Công cụ dùng JSONPath, một ngôn ngữ truy vấn khác. Pipe và hàm của jq không được hỗ trợ.

Vì sao kết quả luôn là một mảng?

Một biểu thức JSONPath có thể khớp với số lượng giá trị bất kỳ, nên mọi kết quả khớp được trả về trong một mảng.

JSON của tôi có bị gửi lên máy chủ không?

Không, truy vấn chạy trong trình duyệt của bạn.

Số lớn có bị mất độ chính xác ở đây không?

Có, giá trị được đánh giá dưới dạng số JavaScript, nên số nguyên lớn hơn 2^53 có thể bị làm tròn trong kết quả truy vấn.

Bước tiếp theo nên làm

Khám phá thêm danh mục