Ngay sau khi tôi thêm tiền thưởng của mình, tôi đã tìm ra giải pháp. Vấn đề của tôi có cấu trúc cơ bản giống nhau, đó là số nhận dạng cha và một số cặp khóa / giá trị con số N cho xếp hạng (chất lượng, giá trị, v.v.).
Trước tiên, bạn sẽ cần một bước Nhập JSON để nhận SKU, Tên và mảng size_break_costs, tất cả đều ở dạng Chuỗi. Phần quan trọng là size_break_costs là một chuỗi và về cơ bản chỉ là một mảng JSON được xâu chuỗi. Đảm bảo rằng trong tab Nội dung của Đầu vào JSON, "Bỏ qua đường dẫn bị thiếu" được chọn, trong trường hợp bạn nhận được đường dẫn có mảng trống hoặc trường bị thiếu vì lý do nào đó.
Đối với các trường của bạn, hãy sử dụng:
Name | Path | Type
ProductSKU | $.sku | String
ProductName | $.name | String
SizeBreakCosts | $.size_break_costs | String
Tôi đã thêm khối "Lọc hàng" sau bước này, với điều kiện "SizeBreakCosts KHÔNG ĐẦY ĐỦ", khối này sau đó được chuyển đến khối Đầu vào JSON thứ hai. Khối JSON thứ hai này, bạn sẽ cần kiểm tra "Nguồn được xác định trong trường?" Và đặt giá trị của "Lấy nguồn từ trường" thành "SizeBreakCosts" hoặc bất kỳ thứ gì bạn đặt tên cho nó trong khối Đầu vào JSON đầu tiên.
Một lần nữa, hãy đảm bảo rằng "Bỏ qua đường dẫn bị thiếu" được chọn, cũng như "Bỏ qua tệp trống". Từ khối này, chúng tôi muốn lấy hai trường. Chúng ta sẽ có ProductSKU và ProductName với mỗi hàng được chuyển vào và bước Nhập JSON thứ hai này sẽ chia nhỏ hơn nữa thành tuy nhiên nhiều hàng nằm trong JSON đầu vào SizeBreakCosts. Đối với các trường, hãy sử dụng:
Name | Path | Type
Quantity | $.[*].quantity | Integer
Size | $.[*].size | String
Như bạn có thể thấy, các đường dẫn này sử dụng "$. [*]. FieldName", bởi vì chuỗi JSON mà chúng tôi đã truyền vào có một mảng là mục gốc, vì vậy chúng tôi đang lấy mọi mục trong mảng đó và phân tích số lượng của nó và kích thước.
Bây giờ mỗi hàng phải có SKU và tên từ đối tượng mẹ, số lượng và kích thước từ mỗi đối tượng con. Đưa ví dụ này vào một tệp văn bản, tôi nhận được:
ProductSKU;ProductName;Size;Quantity
SK3579;Authority;S; 80
SK3579;Authority;M; 14
SK3579;Authority;L; 55