logo
GeekFormat

Truy vấn JSONPath

Công cụ truy vấn JSONPath trực tuyến, hỗ trợ truy cập thuộc tính $.property, chỉ mục mảng [n], ký tự đại diện [*], lát cắt mảng [start:end], biểu thức lọc có điều kiện ?(). Sau khi nhập JSON và đường dẫn, truy vấn sẽ thực thi theo thời gian thực (debounce 400ms), hỗ trợ chuyển đổi giữa chế độ xem JSON đã định dạng và chế độ xem bảng căn chỉnh. Có sẵn 8 ví dụ đường dẫn thông dụng tích hợp, có thể tự động sửa lỗi cú pháp JSON, hỗ trợ tải lên tệp JSON, tải xuống kết quả truy vấn, phím tắt bàn phím, tự động lưu lịch sử cục bộ, có thể điều chỉnh độ rộng bảng điều khiển trái-phải, chuyển đổi kích thước phông chữ. Toàn bộ phân tích cú pháp và truy vấn được thực hiện cục bộ trong trình duyệt, không tải lên bất kỳ dữ liệu nào, phù hợp cho QA kiểm thử xác thực giao diện, backend gỡ lỗi trích xuất trường nhật ký, frontend tích hợp API kiểm tra cấu trúc phản hồi.

Đề xuất Liên quan

Trường hợp sử dụng

  • Kỹ sư kiểm thử QA xác minh biểu thức xác thực JSONPath tương tác có thể trích xuất chính xác trường mục tiêu hay không trước khi viết kiểm thử tự động giao diện
  • Lập trình viên backend gỡ lỗi phản hồi giao diện lồng nhau phức tạp, nhanh chóng xác định đường dẫn trường sâu, không cần tự tay mở rộng từng cấp
  • Frontend tích hợp API bên thứ ba, nhanh chóng xác minh cấu trúc JSON phản hồi, xác nhận đường dẫn trường rồi mới viết mã lấy giá trị
  • Vận hành/backend kiểm tra trường JSON trong nhật ký ELK, Jaeger, nhanh chóng trích xuất giá trị trường cụ thể để phân tích sự cố
  • Thực hiện lọc có điều kiện trên dữ liệu phản hồi JSON API trước khi phân tích dữ liệu, trước tiên lọc ra các bản ghi thỏa mãn điều kiện rồi xử lý tiếp
  • Trước khi cấu hình bộ trích xuất JSON trong Postman, JMeter, RestAssured, gỡ lỗi biểu thức cục bộ để tránh chạy lại giao diện lặp đi lặp lại
  • Xử lý dữ liệu JSON hàng loạt, nhanh chóng trích xuất tập con trường cần thiết để tạo cấu trúc dữ liệu mới
  • Khi học cú pháp JSONPath, nhanh chóng xác minh các cách viết cú pháp khác nhau thông qua phản hồi thời gian thực, tăng cường hiểu biết
  • Khi gỡ lỗi phát triển trình thu thập dữ liệu web, xác minh đường dẫn trích xuất dữ liệu từ phản hồi JSON API có chính xác không
  • Khi viết tài liệu API, xác minh đường dẫn JSON mẫu bằng công cụ rồi mới viết vào ví dụ tài liệu
  • Lập trình viên di động gỡ lỗi giao diện, mở công cụ tạm thời trên điện thoại để nhanh chóng xác minh trích xuất trường, không cần tìm máy tính
  • Trong quá trình Code Review, kiểm tra xem biểu thức JSONPath do đồng nghiệp viết có chính xác và lấy được giá trị kỳ vọng không

Tính năng

  • Hỗ trợ đầy đủ cú pháp thiết thực: truy cập thuộc tính $.property, chỉ mục mảng [n] (bao gồm [-1] lấy phần tử cuối cùng), ký tự đại diện [*], lát cắt mảng [start:end], lọc có điều kiện ?() (hỗ trợ so sánh ==/!=/>/</>=/<=)
  • Truy vấn thời gian thực: sau khi nhập JSON hoặc đường dẫn, truy vấn tự động thực thi với debounce 400ms, không cần nhấp nút, kết quả cập nhật tức thì
  • Chế độ xem đôi JSON/bảng: kết quả truy vấn hỗ trợ chuyển đổi giữa xem JSON đẹp mắt và xem bảng căn chỉnh, kết quả mảng đối tượng tự động hiển thị căn chỉnh theo cột, thuận tiện duyệt nhanh
  • 8 ví dụ tích hợp sẵn: menu thả xuống cung cấp 8 ví dụ đường dẫn thông dụng (đối tượng gốc, tất cả sách, phần tử đầu/cuối, lát cắt, trích xuất giá, lọc có điều kiện v.v.), nhấp để điền ngay
  • Cửa sổ trợ giúp cú pháp: mở bảng trợ giúp chỉ với một cú nhấp chuột để xem tham chiếu nhanh 6 cú pháp cốt lõi và giải thích phím tắt, tự động điều chỉnh hiển thị phím tắt cho Mac/Windows
  • Tự động sửa lỗi thông minh: khi JSON có lỗi định dạng, tự động phát hiện sự cố có thể sửa, sửa lỗi cú pháp JSON phổ biến chỉ với một cú nhấp (thiếu dấu phẩy, dấu ngoặc kép, dấu phẩy đuôi v.v.)
  • Định dạng một cú nhấp: tích hợp chức năng định dạng JSON, nhấn Shift+Cmd/Ctrl+F để nhanh chóng làm đẹp JSON đầu vào, sắp xếp gọn gàng dễ đọc các cấp độ
  • Tải lên và tải xuống tệp: hỗ trợ tải tệp .json/.txt để đọc nội dung trực tiếp, tải kết quả truy vấn thành tệp query-result.json chỉ với một cú nhấp
  • Phím tắt bàn phím: tổ hợp phím Shift+Cmd/Ctrl (Enter truy vấn, F định dạng, O tải lên, D tải xuống, K xóa), nâng cao hiệu quả thao tác
  • Lịch sử cục bộ: tự động lưu 200 mục nhập gần nhất vào localStorage trình duyệt, lần mở tiếp theo tự động khôi phục nội dung lần trước, không cần dán lại
  • Điều chỉnh độ rộng bảng điều khiển: trên PC có thể kéo thanh chia giữa để điều chỉnh tỷ lệ độ rộng bảng điều khiển trái-phải, phân bổ không gian linh hoạt theo cấu trúc JSON
  • Chuyển đổi kích thước phông chữ: hỗ trợ chuyển đổi kích thước phông chữ mã 14px/16px, bảo vệ mắt khi gỡ lỗi trong thời gian dài
  • Trình soạn thảo mã monospaced: dựa trên CodeMirror triển khai tô sáng cú pháp, hiển thị số dòng, khớp ngoặc, trải nghiệm chỉnh sửa chuyên nghiệp mượt mà
  • Xử lý hoàn toàn trong trình duyệt cục bộ: toàn bộ phân tích JSON, đối sánh đường dẫn, lọc có điều kiện đều thực hiện bằng JavaScript cục bộ, dữ liệu không tải lên máy chủ, yên tâm sử dụng với dữ liệu giao diện nhạy cảm và nhật ký

Cách Sử dụng

  1. Nhấp nút「Ví dụ」trên thanh công cụ để tải JSON mẫu trải nghiệm nhanh, hoặc dán/tải lên dữ liệu JSON của riêng bạn vào trình soạn thảo bên trái
  2. Nhập biểu thức JSONPath vào hộp truy vấn phía trên (có thể nhấp nút「Ví dụ」bên phải để chọn đường dẫn thông dụng), bắt đầu bằng $ hoặc viết trực tiếp đường dẫn thuộc tính đều được
  3. Sau khi nhập, tự động truy vấn trong 400ms, bên phải hiển thị kết quả tức thì; có thể chuyển「Chế độ xem JSON」để xem cấu trúc đã định dạng hoặc「Chế độ xem bảng」để xem danh sách căn chỉnh
  4. Sau khi xác minh biểu thức chính xác, nhấp nút sao chép hoặc tải xuống để lưu kết quả, cũng có thể sao chép biểu thức JSONPath vào các công cụ như Postman/JMeter để sử dụng

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

Hỗ trợ những cú pháp JSONPath nào?

Hỗ trợ các cú pháp thiết thực sau: ①truy cập thuộc tính đối tượng bằng $.property hoặc ['property']; ②truy cập phần tử mảng theo chỉ mục bằng [n] (n bắt đầu từ 0, [-1] nghĩa là phần tử cuối cùng); ③ký tự đại diện [*] hoặc .* khớp với tất cả phần tử mảng hoặc tất cả giá trị thuộc tính đối tượng; ④lát cắt mảng [start:end] lấy các phần tử trong phạm vi được chỉ định; ⑤lọc có điều kiện ?(@.field op value) hỗ trợ 6 toán tử so sánh ==/!=/>/</>=/<=, hỗ trợ so sánh chuỗi và số.

Làm thế nào để trích xuất các phần tử trong mảng thỏa mãn điều kiện?

Sử dụng biểu thức lọc có điều kiện ?(). Ví dụ $.store.book[?(@.price < 80)] lọc sách có giá dưới 80, $.store.book[?(@.category == 'lập trình')] lọc sách thuộc danh mục lập trình. Lưu ý tên thuộc tính phải có @. đứng trước để biểu thị phần tử hiện tại, giá trị chuỗi cần được đặt trong dấu nháy đơn hoặc dấu nháy kép.

Làm thế nào để lấy phần tử đầu tiên/cuối cùng/N phần tử đầu tiên của mảng?

[0] lấy phần tử đầu tiên, [-1] lấy phần tử cuối cùng, [0:2] lấy 2 phần tử đầu tiên từ chỉ mục 0 đến 1 (lát cắt đóng trái mở phải, không bao gồm chỉ mục end), ví dụ $.store.book[0:3] lấy 3 quyển sách đầu tiên.

Xem dạng bảng khác với xem JSON như thế nào?

Chế độ xem JSON hiển thị kết quả JSON được định dạng với thụt lề chuẩn, giữ nguyên cấu trúc lồng nhau hoàn chỉnh, phù hợp sao chép và xem dữ liệu đầy đủ; chế độ xem bảng tự động căn chỉnh hiển thị kết quả mảng đối tượng theo các cột thuộc tính, tương tự bảng Excel, trực quan hơn khi duyệt nhiều bản ghi, có thể nhanh chóng quét qua giá trị trường của tất cả các hàng để so sánh sự khác biệt. Kết quả kiểu đơn giản cũng được hiển thị căn chỉnh theo cặp khóa-giá trị.

Phải làm gì khi thông báo lỗi phân tích cú pháp JSON?

Nếu JSON đầu vào có lỗi cú pháp (thiếu dấu phẩy, dấu ngoặc kép không khớp, thừa dấu phẩy đuôi, dấu nháy đơn v.v.), vùng lỗi sẽ hiển thị cảnh báo màu đỏ, đồng thời xuất hiện nút「Sửa lỗi」, nhấp vào để tự động cố gắng sửa các sự cố JSON phổ biến. Bạn cũng có thể dùng Shift+Cmd/Ctrl+F để định dạng trước, nếu định dạng báo lỗi nghĩa là JSON thực sự có vấn đề, hãy sửa trước rồi mới truy vấn.

Sau khi truy vấn không hiển thị bất kỳ kết quả nào?

Vui lòng kiểm tra: ①JSON có hợp lệ và chính xác không (có thể nhấp nút định dạng để xác minh); ②chính tả đường dẫn JSONPath có đúng không, tên thuộc tính phân biệt chữ hoa chữ thường; ③đường dẫn có tồn tại không (ví dụ truy cập thuộc tính không tồn tại sẽ gây lỗi); ④cú pháp biểu thức lọc có đúng không, dấu ngoặc và dấu nháy có khớp nhau không.

Làm thế nào để sử dụng các ví dụ tích hợp?

Nhấp vào nút「Ví dụ」(mũi tên xuống) ở bên phải hộp truy vấn, menu thả xuống sẽ liệt kê 8 ví dụ đường dẫn thông dụng, nhấp vào bất kỳ ví dụ nào sẽ tự động điền biểu thức đường dẫn. Đồng thời khuyến nghị trước tiên nhấp nút「Ví dụ」để tải dữ liệu JSON mẫu (dữ liệu hiệu sách), sau đó kết hợp với đường dẫn mẫu để trải nghiệm hiệu quả.

Có những phím tắt nào?

Sử dụng nhất quán tổ hợp phím Shift+Cmd(Mac)/Shift+Ctrl(Windows): Shift+Enter thực thi truy vấn, Shift+F định dạng JSON, Shift+O tải tệp lên, Shift+D tải kết quả xuống, Shift+K xóa toàn bộ nội dung. Trong nút trợ giúp (biểu tượng ?) có thể xem danh sách phím tắt hoàn chỉnh bất cứ lúc nào.

Lọc có điều kiện hỗ trợ những toán tử so sánh nào?

Hỗ trợ 6 toán tử so sánh: == (bằng), != (không bằng), > (lớn hơn), < (nhỏ hơn), >= (lớn hơn hoặc bằng), <= (nhỏ hơn hoặc bằng). So sánh số sẽ so sánh theo độ lớn số, so sánh chuỗi sẽ so sánh theo thứ tự từ điển, giá trị chuỗi cần đặt trong dấu nháy đơn hoặc dấu nháy kép.

Đường dẫn có cần bắt đầu bằng $ không?

Không bắt buộc. Sẽ tự động bổ sung $. ở đầu, nhập trực tiếp store.book[0] cũng hoạt động bình thường, hệ thống sẽ tự động chuẩn hóa thành $.store.book[0] để thực thi. Tuy nhiên, đặc tả JSONPath chuẩn khuyến nghị bắt đầu bằng $ để biểu thị nút gốc.

Tại sao nội dung tôi nhập trước đó vẫn còn khi mở lại lần sau?

Công cụ sẽ tự động lưu JSON đã nhập gần nhất vào localStorage cục bộ trình duyệt (tối đa 200 mục lịch sử), khi mở trang lần tiếp theo sẽ tự động khôi phục nội dung lần trước, không cần dán lại kết quả phản hồi giao diện mỗi lần. Nút xóa (Shift+K) sẽ xóa nội dung hiện tại.

Có thể tải lên tệp JSON không?

Được. Nhấp nút「Tải lên」trên thanh công cụ hoặc nhấn Shift+O, chọn tệp .json hoặc .txt cục bộ để tự động đọc nội dung tệp và điền vào hộp nhập. Kết quả truy vấn cũng có thể nhấp nút「Tải xuống」hoặc Shift+D để lưu thành tệp query-result.json vào máy.

Có phù hợp để thực hiện xác thực giao diện Postman/JMeter không?

Rất phù hợp. Khi gỡ lỗi giao diện, dán JSON mà giao diện trả về vào công cụ, điều chỉnh biểu thức JSONPath tương tác cho đến khi kết quả truy vấn khớp với kỳ vọng, sau đó sao chép biểu thức đã xác thực vào script kiểm thử Postman, JMeter JSON Extractor, các framework kiểm thử tự động để sử dụng, có thể giảm đáng kể thời gian gỡ lỗi trực tuyến.

Dữ liệu giao diện tôi nhập có được tải lên máy chủ không?

Không. Toàn bộ phân tích JSON, đối sánh đường dẫn JSONPath, lọc có điều kiện, định dạng bảng đều được thực hiện cục bộ bằng JavaScript trong trình duyệt của bạn, nội dung JSON đầu vào không được gửi qua mạng đến bất kỳ máy chủ nào, sau khi đóng trang chỉ có localStorage cục bộ lưu giữ (có thể xóa), yên tâm sử dụng với dữ liệu nghiệp vụ nhạy cảm và dữ liệu giao diện chưa ra mắt.

Ký tự đại diện [*] có thể dùng trên đối tượng không?

Được. [*] dùng trên mảng trả về tất cả phần tử của mảng; dùng trên đối tượng (ví dụ $.store.*) trả về mảng gồm tất cả giá trị thuộc tính của đối tượng. Khi kết hợp với thuộc tính, ví dụ $.store.book[*].author có thể trích xuất thuộc tính author của tất cả phần tử trong mảng, tạo thành danh sách tác giả.

Về JSONPath và trích xuất dữ liệu

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.

术语表

JSONPath
Ngôn ngữ biểu thức đường dẫn dùng để trích xuất phần được chỉ định từ dữ liệu JSON, tương tự XPath đối với XML, mô tả vị trí dữ liệu mục tiêu thông qua ký hiệu đường dẫn.
Nút gốc ($)
Điểm bắt đầu của biểu thức JSONPath, biểu thị đối tượng gốc hoặc mảng gốc của toàn bộ tài liệu JSON, đường dẫn có thể bắt đầu bằng $, công cụ cũng hỗ trợ bỏ qua $ và viết trực tiếp đường dẫn.
Nút hiện tại (@)
Được sử dụng trong biểu thức lọc, biểu thị phần tử mảng đang được duyệt hiện tại, @.field dùng để truy cập trường được chỉ định của phần tử hiện tại.
Truy cập thuộc tính (.property hoặc ['property'])
Hai cách viết để truy cập thuộc tính được chỉ định của đối tượng: cách viết dấu chấm ($.store.book) ngắn gọn, cách viết dấu ngoặc vuông có dấu nháy ($['store']['book']) phù hợp cho tên thuộc tính chứa ký tự đặc biệt.
Chỉ mục mảng ([n])
Truy cập phần tử mảng theo vị trí, chỉ mục bắt đầu từ 0, [0] biểu thị phần tử đầu tiên, [-1] biểu thị phần tử cuối cùng.
Ký tự đại diện ([*] hoặc .*)
Khớp với tất cả mục con tại vị trí hiện tại: dùng trên mảng trả về tất cả phần tử, dùng trên đối tượng trả về tất cả giá trị thuộc tính.
Lát cắt mảng ([start:end])
Cắt một đoạn phần tử của mảng, khoảng đóng trái mở phải (bao gồm start không bao gồm end), bỏ qua start có nghĩa là bắt đầu từ đầu, bỏ qua end có nghĩa là đến cuối.
Bộ lọc có điều kiện (?())
Lọc phần tử mảng theo điều kiện, viết biểu thức so sánh bên trong, hỗ trợ 6 loại so sánh ==/!=/>/</>=/<=, giá trị chuỗi cần đặt trong dấu nháy.
Xác thực Postman
Script Tests trong công cụ kiểm thử giao diện Postman, sử dụng JSONPath để trích xuất trường do giao diện trả về rồi thực hiện xác thực, là cách phổ biến trong kiểm thử tự động giao diện.
Debounce
Kỹ thuật tối ưu trì hoãn thực thi truy vấn sau khi ngừng nhập (công cụ này là 400ms), tránh truy vấn lại mỗi lần nhấn phím, nâng cao độ mượt mà khi nhập.
CodeMirror
Thành phần trình soạn thảo mã trên trình duyệt, cung cấp các chức năng chỉnh sửa mã chuyên nghiệp như tô sáng cú pháp, số dòng, khớp ngoặc, công cụ này sử dụng nó làm vùng chỉnh sửa JSON.
Xử lý cục bộ
Toàn bộ logic phân tích và truy vấn JSON thực thi bằng JavaScript trong trình duyệt người dùng, dữ liệu không tải lên máy chủ, vừa nhanh vừa an toàn, phù hợp xử lý dữ liệu nhạy cảm.

Bảng tham chiếu nhanh cú pháp cốt lõi JSONPath

Tất cả các cú pháp mà công cụ này hỗ trợ:

Cú phápMô tảKết quả ví dụ (JSON hiệu sách mẫu)
$Đối tượng gốc, trả về toàn bộ JSONĐối tượng store hoàn chỉnh
$.store.book[0]Truy cập phần tử đầu tiên của mảng book (chỉ mục bắt đầu từ 0)Quyển sách JavaScript nâng cao
$.store.book[-1]Truy cập phần tử cuối cùng của mảngQuyển sách Yếu tố trải nghiệm người dùng
$.store.book[*]Ký tự đại diện, trả về tất cả phần tử của mảngMảng gồm tất cả 3 quyển sách
$.store.book[0:2]Lát cắt mảng, lấy chỉ mục 0 đến 1 (đóng trái mở phải)2 quyển sách đầu tiên
$.store.book[*].authorTrích xuất trường author của tất cả phần tử trong mảng["Trương Tam","Lý Tứ","Vương Ngũ"]
$.store.book[?(@.price < 80)]Lọc có điều kiện, lọc sách có price < 802 quyển Python và UX (giá 79 và 59)
$.store.bicycle.colorDấu chấm truy cập thuộc tính đối tượng lồng nhau"Đỏ"

Toán tử so sánh lọc có điều kiện

Các toán tử được hỗ trợ bởi biểu thức lọc ?():

Toán tửÝ nghĩaVí dụ
==Bằng (hỗ trợ số và chuỗi)?(@.category == 'lập trình')
!=Không bằng?(@.status != 'deleted')
>Lớn hơn (so sánh số)?(@.price > 100)
<Nhỏ hơn?(@.price < 50)
>=Lớn hơn hoặc bằng?(@.age >= 18)
<=Nhỏ hơn hoặc bằng?(@.count <= 100)

Danh sách phím tắt bàn phím

Tất cả phím tắt sử dụng tổ hợp Shift + Cmd(Mac)/Ctrl(Windows):

Thao tácPhím tắt MacPhím tắt Windows
Thực thi truy vấn⇧ + ⌘ + EnterShift + Ctrl + Enter
Định dạng JSON⇧ + ⌘ + FShift + Ctrl + F
Tải tệp lên⇧ + ⌘ + OShift + Ctrl + O
Tải kết quả xuống⇧ + ⌘ + DShift + Ctrl + D
Xóa nội dung⇧ + ⌘ + KShift + Ctrl + K

Privacy & Security

Toàn bộ phân tích JSON, đối sánh đường dẫn, lọc có điều kiện, định dạng bảng của công cụ truy vấn JSONPath này thực hiện hoàn toàn cục bộ bằng JavaScript trong trình duyệt của bạn. Dữ liệu JSON bạn nhập, đường dẫn truy vấn và kết quả trả về sẽ không được tải lên bất kỳ máy chủ nào, cũng không được ghi lại, lưu đệm hoặc lưu trữ trên đám mây. Lịch sử nhập chỉ được lưu trong localStorage cục bộ trình duyệt của bạn (tối đa 200 mục), bạn có thể xóa thông qua nút xóa hoặc xóa dữ liệu trình duyệt. Yên tâm sử dụng với các trường nghiệp vụ nhạy cảm, dữ liệu giao diện chưa ra mắt, nhật ký môi trường sản xuất, không có bất kỳ rủi ro rò rỉ dữ liệu nào.

Authoritative References

Troubleshooting

Thông báo「Đường dẫn không tồn tại hoặc giá trị là null/undefined」

Có nghĩa là không tìm thấy giá trị tương ứng trong JSON hiện tại cho đường dẫn JSONPath. Kiểm tra: ①chính tả tên thuộc tính và phân biệt chữ hoa chữ thường có đúng không (JSON phân biệt chữ hoa chữ thường); ②cấp độ lồng nhau có đúng không, lớp trung gian có tồn tại không; ③chỉ mục mảng có vượt quá giới hạn không; ④nhấp định dạng trước để xác nhận cấu trúc JSON khớp với kỳ vọng của bạn.

Thông báo「Cố gắng sử dụng chỉ mục/lát cắt/bộ lọc trên đối tượng không phải mảng」

Có nghĩa là bạn đã sử dụng chỉ mục [], lát cắt [start:end] hoặc bộ lọc ?() trên giá trị không phải mảng. Các thao tác này chỉ có thể sử dụng trên mảng. Kiểm tra xem vị trí tương ứng của đường dẫn thực tế là mảng hay đối tượng đơn lẻ, có thể sử dụng ký tự đại diện $ hoặc đường dẫn gốc trước để xác nhận cấu trúc thực tế.

Lọc có điều kiện không trả về kết quả mong đợi

Kiểm tra: ①sau @ có dấu chấm không (phải viết @.field, không được quên dấu chấm); ②giá trị chuỗi có đặt trong dấu nháy đơn/nháy kép không (?(@.name == zhangsan) là sai, phải viết ?(@.name == 'zhangsan')); ③giá trị số không đặt trong dấu nháy, nếu không sẽ so sánh như chuỗi; ④không để khoảng trắng thừa ở hai bên toán tử so sánh.

Thông báo「Dấu ngoặc không khớp」

Có nghĩa là dấu ngoặc vuông [] hoặc dấu ngoặc bộ lọc () của biểu thức JSONPath không ghép nối chính xác, kiểm tra xem có quên viết ] hoặc ) đóng không, đặc biệt khi có nhiều lớp ngoặc vuông lồng nhau, lưu ý mỗi [ phải có ] tương ứng.