Dataweave 2 - выводит несколько JSON построчно - PullRequest
0 голосов
/ 08 мая 2019

Мой вход - это Массив объектов , который я хочу сопоставить с объектом JSON .

Я хочу, чтобы каждый объект JSON был строкой на строку , а JSON был установлен в одинаковую полезную нагрузку .

Мой код Dataweave:

 %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"}

Ответы [ 2 ]

3 голосов
/ 08 мая 2019

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'
3 голосов
/ 08 мая 2019

Привет, вам нужно использовать функцию write и вывести ее в виде обычного текста, поскольку желаемый вывод не является допустимым json

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

В этом примере показано, как это сделать.

...