[Hướng dẫn] JSONPath trong Postman có nghĩa là gì?

Bài viết này khám phá tính năng JSONPath của Postman, giúp bạn dễ dàng điều hướng và trích xuất dữ liệu từ phản hồi JSON. Tìm hiểu cách nhắm đến các phần tử cụ thể trong cấu trúc JSON phức tạp, lọc kết quả và thu nhận thông tin sâu hơn từ các tương tác API của bạn.

Minh Triết

Minh Triết

22 tháng 8 2025

[Hướng dẫn] JSONPath trong Postman có nghĩa là gì?

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Kiểm tra API hiệu quả phụ thuộc vào việc trích xuất và xử lý dữ liệu từ các phản hồi JSON một cách hiệu quả. Postman, một nền tảng phát triển API phổ biến, cung cấp cho người dùng JSONPath, một ngôn ngữ truy vấn mạnh mẽ được thiết kế đặc biệt để điều hướng cấu trúc JSON.

💡
Phát triển web và ứng dụng có thể liên quan đến nhiều công nghệ khác nhau, điều này có nghĩa là các công cụ phải có khả năng hỗ trợ chúng!

Nếu bạn đang tìm kiếm một công cụ API để tiến hành phát triển ứng dụng hoặc API của mình, thì bạn nên xem xét sử dụng Apidog - một giải pháp toàn diện cho tất cả các vấn đề API của bạn.

Nếu bạn muốn tìm hiểu thêm về Apidog, hãy nhấp vào nút bên dưới!
button

Bài viết này đi sâu vào thế giới JSONPath của Postman, trang bị cho bạn những kỹ năng để khai thác toàn bộ tiềm năng của các tương tác API của bạn.

JSONPath là gì?

JSON (JavaScript Object Notation) là một định dạng dữ liệu phổ biến để trao đổi thông tin giữa các API và ứng dụng. Trong khi tính đọc được của nó là một lợi thế, các phản hồi JSON phức tạp với các đối tượng và mảng lồng nhau có thể khó điều hướng. Đây là nơi JSONPath xuất hiện – một ngôn ngữ truy vấn ngắn gọn được thiết kế đặc biệt để duyệt qua và trích xuất dữ liệu từ các cấu trúc JSON.

Các biểu thức JSONPath giống như một bản đồ, hướng dẫn bạn qua hệ thống phân cấp JSON. Dưới đây là cách hoạt động của nó:

Phần tử gốc

Các phần tử gốc được đại diện bởi $, nó biểu thị toàn bộ tài liệu JSON.

Nút con

Cách ghi dấu chấm (.) hoặc cách ghi dấu ngoặc ([]) được sử dụng để truy cập các nút con.

Mảng

Dấu ngoặc vuông với chỉ số để truy cập các phần tử cụ thể: $.items[1] chọn phần tử thứ hai trong mảng "items". Ký tự đại diện (*) có thể được sử dụng để nhắm đến tất cả các phần tử: $.products[*] chọn tất cả các phần tử trong mảng "products".

Bộ lọc

Các bộ lọc cho phép bạn thu hẹp kết quả dựa trên các điều kiện. Ví dụ, $..[?(@.price > 100)] chọn tất cả các đối tượng trong cấu trúc JSON (được tượng trưng bằng ..) mà thuộc tính "price" lớn hơn 100.

Postman hoạt động với JSONPath như thế nào?

Kịch bản kiểm tra

Các biểu thức JSONPath có thể được nhúng trong các kịch bản kiểm tra của Postman để trích xuất dữ liệu cụ thể từ các phản hồi và thực hiện xác nhận.

Bộ sưu tập

JSONPath có thể được sử dụng trong các biến bộ sưu tập để định nghĩa động các tham số yêu cầu dựa trên các phản hồi trước. Điều này cho phép xây dựng các trường hợp kiểm tra tái sử dụng và dựa trên dữ liệu.

Kịch bản trước yêu cầu

Các biểu thức JSONPath có thể được sử dụng trong các kịch bản trước yêu cầu để xử lý dữ liệu trước khi gửi yêu cầu.

Các ví dụ về truy vấn JSONPath

Đây là một số ví dụ về các truy vấn JSONPath có thể được thực hiện trong phần trước yêu cầu của Postman.

kịch bản trước yêu cầu postman

Ví dụ 1 - Logic điều kiện với hàm if

Hãy tưởng tượng một phản hồi với thuộc tính "isActive" cho người dùng. Bạn muốn trích xuất tên của họ, nhưng chỉ khi họ đang hoạt động.

$.users[*].if(@.isActive, $.name, "Không hoạt động")

Mã này sử dụng hàm if. Nếu đối tượng người dùng hiện tại có thuộc tính "isActive" được đặt là true, nó sẽ trích xuất tên của họ. Nếu không, nó trả về chuỗi "Không hoạt động".

Ví dụ 2 - Tìm giá trị tối thiểu/tối đa

Giả sử bạn có một mảng "orders" với thuộc tính "amount" cho mỗi đơn hàng. Bạn muốn tìm đơn hàng có số tiền tối thiểu và tối đa.

$..[?(@.type == "order")].amount.min()  // Số tiền tối thiểu
$..[?(@.type == "order")].amount.max()  // Số tiền tối đa

Các truy vấn này tận dụng các hàm min()max() để xác định các giá trị tương ứng trong thuộc tính "amount" trên tất cả các đơn hàng.

Ví dụ 3 - Làm phẳng các mảng lồng nhau

Postman không hỗ trợ các mảng lồng nhau một cách tự nhiên. Nếu bạn có một phản hồi với các danh mục sản phẩm lồng nhau, bạn có thể muốn làm phẳng chúng thành một danh sách duy nhất.

$.categories..[*] | flatten

Mã này sử dụng toán tử pipeline (|) và hàm flatten. Nó duyệt qua tất cả các phần tử lồng nhau trong cấu trúc "categories" và làm phẳng chúng thành một mảng một cấp.

Ví dụ 4 - Làm việc với ngày tháng và số

JSONPath có thể xử lý ngày tháng và số. Giả sử bạn có một dấu thời gian "createdAt" cho người dùng. Bạn muốn định dạng nó theo một định dạng ngày cụ thể.

pm.response.json().users[*].createdAt.toString(pm.timestampFormat("YYYY-MM-DD"))  // Giả sử có một hàm định dạng đã được định nghĩa trước

Ví dụ này kết hợp JSONPath với một hàm kịch bản của Postman (pm.timestampFormat) để định dạng thời gian "createdAt" theo định dạng mong muốn (YYYY-MM-DD) trong một kịch bản trước yêu cầu.

Ví dụ 5 - Kết hợp JSONPath với các biến của Postman

Bạn có thể điều khiển động các truy vấn JSONPath bằng cách sử dụng các biến của Postman. Giả sử bạn muốn lọc người dùng dựa trên một ID người dùng được lưu trong một biến.

$.users[?(@.id == pm.variables.get("selectedUserId"))]

Tại đây, pm.variables.get("selectedUserId") lấy giá trị được lưu trong biến "selectedUserId" và sử dụng nó trong bộ lọc JSONPath để chọn người dùng một cách động.

Apidog - Thiết lập nhanh các kịch bản tiền xử lý

Apidog là một công cụ phát triển API toàn diện có thể là công cụ thay thế hoàn hảo cho Postman của một nhà phát triển.

giao diện mô phỏng apidog
button

Với đầy đủ công cụ cho toàn bộ vòng đời API, các nhà phát triển có thể xây dựng, kiểm tra, mô phỏng và tài liệu API chỉ trong Apidog!

tính năng apidog

Cài đặt các kịch bản API tùy chỉnh bằng Apidog

kịch bản tiền xử lý apidog

Apidog cung cấp cho các nhà phát triển các tính năng tạo mã cho các kịch bản tùy chỉnh. Bạn có thể lấy và thiết lập cả biến môi trường và địa phương.

xử lý sau apidog

Bạn cũng có thể cá nhân hóa phần xử lý sau của API, chỉ định Biểu thức JSONPath và đối tượng mục tiêu.

button

Tạo API mới với Apidog

Apidog mang đến cho người dùng một mức độ linh hoạt thiết kế cao trong quy trình tạo API. Điều này cho phép phát triển các API phù hợp chính xác với các yêu cầu chức năng của ứng dụng của bạn hoặc các nhu cầu cụ thể của người dùng dự kiến.

button
api mới apidog

Bắt đầu bằng cách nhấn nút New API, như trong hình ảnh ở trên.

thêm chi tiết api mới apidog

Sau khi xác định chức năng cốt lõi của API của bạn, hiện tại cần phải xác định tỉ mỉ các đặc điểm hoạt động của nó. Phần này phác thảo các điều cần cân nhắc chính trong quy trình này:

Để đảm bảo bạn đang xây dựng các API hiệu quả, hãy xem xét việc xem lại các bài viết hữu ích này về các phương pháp tốt nhất của REST API.

button

Kết luận

Sự tích hợp của Postman với JSONPath mở ra một công cụ mạnh mẽ và linh hoạt để điều hướng và xử lý dữ liệu trong các phản hồi JSON. Bằng cách thành thạo các biểu thức JSONPath, bạn có thể trích xuất hiệu quả các giá trị cụ thể, lọc kết quả dựa trên các điều kiện và thậm chí thực hiện các biến thể dữ liệu phức tạp. Điều này giúp bạn đơn giản hóa quy trình kiểm tra API, có được cái nhìn sâu sắc hơn từ các phản hồi và xây dựng các trường hợp kiểm tra vững chắc đảm bảo tính năng và độ tin cậy của các API của bạn.

Hơn nữa, việc tích hợp mượt mà của JSONPath với các khả năng kịch bản của Postman mở ra cánh cửa cho các trường hợp sử dụng tiên tiến hơn. Bạn có thể điều khiển động các truy vấn bằng cách sử dụng các biến, tận dụng các hàm để thao tác dữ liệu tinh vi, và kết hợp JSONPath với các kịch bản trước yêu cầu hoặc kịch bản kiểm tra để tự động hóa các tác vụ phức tạp. Bằng cách ôm lấy sức mạnh của JSONPath trong Postman, bạn nâng cao quy trình phát triển API của mình lên một cấp độ mới về hiệu quả và hiệu suất.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API

[Hướng dẫn] JSONPath trong Postman có nghĩa là gì?