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.
Features
- 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
Usage Guide
- Nhập dữ liệu JSON: Dán hoặc tải JSON bạn muốn truy vấn
- Viết JSONPath: Nhập biểu thức JSONPath hoặc chọn mẫu sẵn có
- 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
- 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
Technical Details
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ợ.
Frequently Asked Questions
- 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ộ.
Related Documentation
- Đặc tả JSONPath - Goessner - Đề xuất JSONPath gốc và định nghĩa cú pháp
- Trình thử JSONPath trực tuyến - Công cụ JSONPath tương tác kèm tài liệu biểu thức
- RFC 9535 - Chuẩn JSONPath - Nỗ lực chuẩn hóa JSONPath của IETF
- Tài liệu jsonpath-ng - Triển khai JSONPath cho Python với tính năng mở rộng
- Jayway JSONPath (Java) - Triển khai JSONPath phổ biến cho Java hỗ trợ bộ lọc