Bỏ qua, đến nội dung

Cấu hình node - JSON Query ​

Node query JSON sử dụng JMESPath hoặc JSONPath để lọc, tìm kiếm, và trích xuất dữ liệu từ object JSON phức tạp.

Bảng tham số cấu hình ​

Tham sốKiểuBắt buộcMặc địnhMô tả
sourcestringCó—Biến workflow chứa JSON data nguồn (object hoặc array)
enginestringKhôngJMESPathEngine query: JMESPath hoặc JSONPath
expressionstringCó—Biểu thức query (VD: items[?price > 100].name)
defaultValueanyKhôngnullGiá trị mặc định khi query không có kết quả

Dữ liệu đầu ra (Output) ​

TênKiểuMô tả
resultanyDữ liệu khớp query (array, object, hoặc scalar)
countnumberSố phần tử kết quả (nếu result là array)

Ví dụ biểu thức theo engine ​

EngineExpressionMô tả
JMESPathitems[?status == 'active']Lọc items có status active
JMESPathitems[*].nameLấy tất cả tên
JMESPathmax_by(items, &price)Item có giá cao nhất
JMESPathitems[?price > \100`] | [0]`Item đầu tiên có giá > 100
JSONPath$.items[?(@.price > 100)]Items giá trên 100
JSONPath$.items[*].nameLấy tất cả tên

So sánh JMESPath vs JSONPath ​

Đặc điểmJMESPathJSONPath
FilterMạnh (function, pipe)Cơ bản
ProjectionHỗ trợ multiselectHỗ trợ
Aggregatemax_by, min_by, sort_byKhông
Cú phápRiêng biệtGiống XPath
Độ phổ biếnAWS, API GatewayPhổ biến hơn

Lưu ý quan trọng ​

  • JMESPath và JSONPath có cú pháp khác nhau - chọn đúng engine cho biểu thức
  • Query trên mảng lớn (hàng ngàn phần tử) có thể chậm - cân nhắc filter ở tầng DB
  • Kết quả filter trả về mảng rỗng [] (không phải null) khi không có phần tử khớp
  • Expression lỗi cú pháp sẽ throw error - test kỹ biểu thức trước khi sử dụng trong workflow
  • Dùng Get JSON Field nếu chỉ cần lấy 1 field theo path cố định (đơn giản và nhanh hơn)