0

我的输入是要映射JSON 对象的对象数组

我希望每个 JSON 对象都是每行一行,并且 JSON 设置在同一个 payload中。

我的数据编织代码:

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

我想要的示例输出:

 {"id": "demo", "surname": "anypoint", "platform": "testing"}
 {"id": "demo2", "surname": "studio", "platform": "apple"}
 {"id": "demo3", "surname": "windows", "platform": "microsoft"}
4

2 回答 2

3

嗨,您需要使用write函数并将其输出为纯文本,因为期望输出不是有效的 json

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

这个例子向你展示了如何去做。

于 2019-05-08T16:42:25.973 回答
3

write作为 json 首先使用 writer 属性删除缩进,将列表项连接在一起,由新行分隔并输出为 text/plain(不能使用 json 作为其无效的 json)

%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'
于 2019-05-08T16:44:28.510 回答