2 Câu hỏi: Dataweave 2 - Xuất nhiều JSON theo dòng

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Đầu vào của tôi là Mảng đối tượng mà tôi muốn ánh xạ thành đối tượng JSON .

Tôi muốn mỗi đối tượng JSON là dòng trên mỗi dòng và bộ JSON trong cùng tải trọng .

Mã dữ liệu của tôi:

 %dw 2.0
 output application/json indent = false
 ---
 payload map (payload, indexOfPayload ) -> {
     id: payload.externalid_c,
     surname: payload.surname__c
         platform: payload.platform__c
 }

Đầu ra ví dụ tôi muốn:

 {"id": "demo", "surname": "anypoint", "platform": "testing"}
 {"id": "demo2", "surname": "studio", "platform": "apple"}
 {"id": "demo3", "surname": "windows", "platform": "microsoft"}
    
0
2 Câu trả lời                              2                         

Xin chào, bạn cần sử dụng chức năng write và xuất nó dưới dạng văn bản đơn giản vì đầu ra mong muốn không phải là json hợp lệ

%dw 2.0
output text/plain
---
payload map ((value, index) -> write(value, "application/json", {indent: false})) joinBy  "\n"

Ví dụ này cho bạn biết cách thực hiện.

    
3
2019-05-08 16: 42: 25Z

write là json trước tiên để sử dụng thuộc tính nhà văn để xóa thụt lề, nối các mục danh sách với nhau bằng một dòng mới và đầu ra dưới dạng văn bản /thuần túy (không thể sử dụng json vì json không hợp lệ)

%dw 2.0
output text/plain
---
payload map ((item, index) -> 
    write({id: item.externalid_c,
    surname: item.surname__c,
    platform: item.platform__c
    }, "application/json", {"indent":false}) 

) joinBy  '\r'
    
3
2019-05-08 19: 43: 57Z
  1. Nó trả về "Message : "You called the function 'map' with these arguments: 1: Binary ("" as Binary {mediaType: "*/*; charset=UTF-8", encoding: "UTF-8", mimeType: "...) 2: Function ((item:Any, index:Any) -> ???) But it expects arguments of these types: 1: Array 2: Function
    2019-05-09 08: 06: 30Z
  2. Đó là vì tải trọng đầu vào của bạn không có bộ mô phỏng. Kiểm tra xem trên nguồn của tải trọng bạn chỉ định là application /json
    2019-05-09 09: 49: 46Z
nguồn đặt đây