JSONPath là ngôn ngữ biểu thức đường dẫn dùng để trích xuất dữ liệu được chỉ định từ tài liệu JSON, tương tự như vai trò của XPath đối với XML. Trong phát triển và kiểm thử API, JSON do giao diện trả về thường có cấp độ sâu và lồng nhau nhiều, tự tay mở rộng từng cấp để tìm trường có hiệu suất thấp và dễ nhầm lẫn. Sử dụng JSONPath có thể xác định chính xác vị trí và trích xuất dữ liệu mục tiêu chỉ với một dòng biểu thức, là công cụ thiết yếu cho lập trình viên trong các tình huống gỡ lỗi giao diện, kiểm thử tự động và trích xuất dữ liệu.
Ý tưởng thiết kế cốt lõi của JSONPath là sử dụng ký hiệu đường dẫn để mô tả vị trí dữ liệu: $ biểu thị nút gốc (toàn bộ đối tượng JSON), dấu chấm . hoặc dấu ngoặc vuông [] truy cập thuộc tính con, [n] truy cập phần tử mảng theo chỉ mục, [*] khớp tất cả phần tử, [start:end] cắt lát đoạn mảng, ?() lọc phần tử mảng theo điều kiện. Bộ cú pháp này ngắn gọn nhưng mạnh mẽ, có thể đáp ứng hầu hết các nhu cầu trích xuất dữ liệu.
Lọc có điều kiện là một trong những chức năng thiết thực nhất của JSONPath, sử dụng dạng ?(@.trường toán tử giá trị) để biểu thị logic lọc, ví dụ ?(@.price < 100) lọc các mục mảng có trường giá nhỏ hơn 100, ?(@.status == 'active') lọc các bản ghi có trạng thái là active. @ đại diện cho phần tử mảng đang được duyệt hiện tại, @.field truy cập trường cụ thể của phần tử hiện tại, điều này làm cho việc lọc có điều kiện rất trực quan.
Tại sao cần công cụ JSONPath chuyên dụng thay vì gỡ lỗi trực tiếp trong mã? Bởi vì khi viết xác thực tự động giao diện hoặc mã trích xuất dữ liệu, nếu viết sai JSONPath, bạn có thể phải chạy lại giao diện, in nhật ký, sửa mã rồi chạy lại, hiệu suất rất thấp. Gỡ lỗi tương tác trong công cụ trực tuyến có thể thấy kết quả trong vài giây, điều chỉnh biểu thức và phản hồi tức thì, sau khi xác thực chính xác rồi mới sao chép vào mã, có thể tiết kiệm rất nhiều thời gian gỡ lỗi.
Chế độ xem bảng là tính năng thiết thực làm cho công cụ này khác biệt so với nhiều công cụ tương tự: khi kết quả truy vấn là mảng đối tượng (đây là dạng danh sách phổ biến nhất mà giao diện trả về), tự động trích xuất tất cả khóa của đối tượng làm tiêu đề bảng, hiển thị căn chỉnh dữ liệu từng hàng, tương tự trải nghiệm duyệt bảng Excel, trực quan hơn nhiều so với tìm giá trị trường từng hàng trong JSON thụt lề, chỉ cần liếc nhanh có thể so sánh sự khác biệt trường của nhiều bản ghi.
Tự động sửa lỗi JSON cũng là tính năng được thiết kế cho tình huống phát triển thực tế: JSON sao chép từ nhật ký, tài liệu, cửa sổ trò chuyện thường gặp các sự cố nhỏ khác nhau — dùng dấu nháy đơn, thiếu dấu phẩy, thừa dấu phẩy đuôi ở mục cuối cùng, tên thuộc tính không có dấu nháy kép v.v., tự sửa rất phiền phức, chức năng sửa lỗi tự động của công cụ có thể xử lý hầu hết các sự cố định dạng JSON phổ biến chỉ với một cú nhấp, không cần phải tìm lỗi từng ký tự.
Lịch sử cục bộ là chi tiết nhỏ được tối ưu hóa cho việc sử dụng thường xuyên: lập trình viên thường phải gỡ lỗi cùng một giao diện lặp đi lặp lại, mỗi lần mở công cụ lại dán JSON rất phiền phức, công cụ tự động lưu nội dung nhập gần nhất vào bộ nhớ cục bộ trình duyệt, lần mở tiếp theo tự động khôi phục nội dung lần trước, 200 mục lịch sử đủ dùng cho công việc hàng ngày. Toàn bộ dữ liệu chỉ lưu trong trình duyệt của riêng bạn, không tải lên.
Cần lưu ý rằng công cụ này hỗ trợ tập con cú pháp JSONPath cốt lõi thiết thực (truy cập thuộc tính, chỉ mục, ký tự đại diện, lát cắt, lọc có điều kiện), bao phủ hơn 90% các tình huống phát triển hàng ngày. Đối với các cú pháp nâng cao như recursive descent (..), biểu thức script, kết hợp nhiều điều kiện hiện tại chưa được hỗ trợ. Nếu tình huống của bạn cần các tính năng nâng cao này, có thể cần sử dụng thư viện triển khai đầy đủ hơn. Đối với hầu hết nhu cầu gỡ lỗi giao diện và trích xuất trường, bộ cú pháp hiện tại hoàn toàn đủ dùng và nhẹ nhàng nhanh chóng.