🔍

Công cụ truy vấn JSONPath

Truy vấn và trích xuất dữ liệu JSON bằng biểu thức JSONPath nâng cao với xem trước realtime và mẫu biểu thức dựng sẵn.

JSON đầu vào

JSONPath

Ví dụ: $.store.book[0].Tiêu đề, $.store.book[*], $..author

JSONPath là gì

JSONPath là ngôn ngữ truy vấn cho JSON, tương tự XPath đối với XML. Nó cung cấp cú pháp chuẩn để điều hướng và trích xuất dữ liệu từ JSON phức tạp bằng biểu thức đường dẫn. JSONPath dùng $ cho gốc, . để truy cập con, [] cho chỉ mục mảng, * cho wildcard và .. cho duyệt đệ quy. Hỗ trợ bộ lọc [?(@.property > Giá trị)], cắt mảng [Bắt đầu:end:Bước] và chọn nhiều phần tử. JSONPath được dùng rộng rãi trong kiểm thử API, biến đổi dữ liệu, truy vấn cấu hình và thao tác JSON, giúp lấy giá trị sâu mà không cần viết mã JavaScript phức tạp.

Tính năng

🔍

Cú pháp truy vấn nâng cao

Hỗ trợ đầy đủ cú pháp JSONPath: wildcard (*), duyệt đệ quy (..), cắt mảng ([Bắt đầu:end]), bộ lọc ([?(@.price < 10)]) và chọn nhiều đường dẫn
📋

Mẫu biểu thức đường dẫn

Cung cấp mẫu truy vấn phổ biến: truy cập gốc ($), con trực tiếp ($.key), phần tử mảng ($.arr[*]), bộ lọc ($.arr[?(@.id)]), tìm kiếm đệ quy ($..key)

Xem trước thời gian thực

Thực thi truy vấn tức thì với tô sáng cú pháp, hiển thị đường dẫn khớp, số lượng kết quả và đánh dấu nút trùng khớp trong JSON nguồn
💾

Xuất kết quả

Xuất dữ liệu truy vấn thành JSON (mảng hoặc giá trị đơn), CSV hoặc văn bản định dạng với thao tác sao chép/tải một lần

📋Hướng dẫn sử dụng

1️⃣
Nhập dữ liệu JSON
Dán hoặc tải JSON bạn muốn truy vấn
2️⃣
Viết JSONPath
Nhập biểu thức JSONPath hoặc chọn mẫu sẵn có
3️⃣
Thực thi truy vấn
Chạy truy vấn để xem kết quả khớp kèm tô sáng cú pháp
4️⃣
Xuất kết quả
Sao chép hoặc tải dữ liệu đã trích xuất theo định dạng mong muốn

📚Giới thiệu kỹ thuật

📝Cú pháp JSONPath

Biểu thức JSONPath bắt đầu bằng $ (gốc) và dùng dấu chấm ($.property) hoặc ngoặc vuông ($['property']) để truy cập. Nút con dùng dấu . ($.store.book), mảng dùng [index] hoặc [*] cho tất cả phần tử. Cắt mảng [Bắt đầu:end:Bước] lấy phạm vi như [0:3] hay [-1]. Toán tử duyệt đệ quy .. tìm ở mọi cấp: $..author lấy tất cả thuộc tính author. Toán tử hợp [,] chọn nhiều phần tử: $[0,2,5] lấy các chỉ mục cụ thể.

🔍Biểu thức lọc

Bộ lọc dùng cú pháp [?(@.điều_kiện)] để chọn phần tử thỏa điều kiện. @ đại diện nút hiện tại. Toán tử so sánh: ==, !=, <, <=, >, >=; logic: &&, ||, !. Ví dụ: [?(@.price < 10)] chọn giá <10; [?(@.category == 'fiction' && @.price < 20)] kết hợp điều kiện. So khớp regex: [?(@.Tên =~ /pattern/)]. Có thể tham chiếu gốc bằng $ để so sánh toàn cục: [?(@.price < $.maxPrice)].

🔧Các biến thể triển khai

JSONPath có nhiều triển khai với khác biệt cú pháp: bản gốc Goessner (JavaScript), Jayway (Java), jsonpath-ng (Python). Khác nhau ở toán tử lọc (@ so với $), hỗ trợ regex, biểu thức script và hàm mở rộng. Một số thêm hàm @.length, @.min(), @.max() để tổng hợp; biểu thức [(@.price * @.quantity)] cho phép tính toán. Toán tử cha ^ và đường dẫn hiện tại ~ cung cấp ngữ cảnh. Luôn xem tài liệu của thư viện bạn dùng để biết tính năng được hỗ trợ.

🎯Ứng dụng thực tiễn

JSONPath hữu dụng khi phân tích phản hồi API, trích trường cụ thể từ REST JSON mà không cần giải tuần tự toàn bộ. Quản lý cấu hình dùng JSONPath để truy vấn/cập nhật giá trị lồng. Pipeline biến đổi dữ liệu dùng JSONPath để ánh xạ schema. Công cụ kiểm thử (Postman, REST Assured) dùng JSONPath assert cấu trúc/giá trị. Phân tích log trích trường quan trọng từ log JSON. Công cụ GraphQL và OpenAPI dùng JSONPath để duyệt và kiểm tra schema. Với JSON lớn, cân nhắc parser streaming hoặc cơ sở dữ liệu hỗ trợ JSONPath (MongoDB, PostgreSQL).

Câu hỏi thường gặp

Công cụ có hỗ trợ chuẩn JSONPath mới của IETF không?

Có. Biểu thức tương thích bản Goessner và RFC 9535. Một số hàm mở rộng phụ thuộc thư viện jsonpath-plus.
💬

Có thể lưu lại truy vấn thường dùng không?

Bạn có thể lưu JSONPath vào snippet cá nhân hoặc Sao chép sang Postman, Newman, kịch bản automation để tái sử dụng.
🔍

Xử lý được JSON dung lượng lớn chứ?

Trình duyệt có thể xử lý vài chục MB tùy thiết bị. Với dữ liệu cực lớn nên dùng pipeline server hoặc database hỗ trợ JSONPath.
💡

Dữ liệu có bị gửi ra ngoài không?

Không. Dữ liệu và biểu thức luôn ở trên thiết bị của bạn, thích hợp cho JSON nhạy cảm trong môi trường nội bộ.

💡Cách sử dụng

🧾

Hiểu cấu trúc JSON

Khảo sát JSON đầu vào để xác định đường dẫn đến trường dữ liệu cần trích xuất.
🧭

Xây dựng biểu thức

Kết hợp toán tử JSONPath ($, ., [], .., *) và bộ lọc để tạo truy vấn chính xác.
🧪

Kiểm tra và tinh chỉnh

Chạy truy vấn, xem số kết quả và điều chỉnh biểu thức cho đến khi khớp dữ liệu mong muốn.
🚀

Tái sử dụng trong dự án

Sao chép truy vấn JSONPath để sử dụng trong Postman, kiểm thử API hoặc trong code backend.

User Comments

0 / 2000
Loading...