簡體   English   中英

Dataweave - 每行對象到對象的數組

[英]Dataweave - Array of Objects to Object per line

我的輸入是一個Array of Java Objects

[{"name"="Demo","platform"=[{"id"="1","value"="ios"},{"id"="2","value"="android"}],"language"=[{"id"="1","value"="eng"}],"date"="20/05/2018"}, {"name"="Kernel","platform"=[{"id"="1","value"="macos"},{"id"="2","value"="linux"}],"language"=[{"id"="1","value"="ger"}],"date"="20/05/2018"}]

每個Java Object包含 Platform 和語言鍵中的數組,如下例所示:

{"name"="Demo","platform"=[{"id"="1","value"="ios"},{"id"="2","value"="android"}],"language"=[{"id"="1","value"="eng"}],"date"="20/05/2018"}

這是text/plain類型的預期輸出

{"name":"Demo","platform":[{"id":"1","value":"ios"},{"id":"2","value":"android"}],"language":[{"id":"1","value":"eng"}],"date":"20/05/2018"}
{"name":"Kernel","platform":[{"id":"1","value":"macos"},{"id":"2","value":"linux"}],"language":[{"id":"1","value":"ger"}],"date":"20/05/2018"}
  • 從 Java 到 JSON 的每個對象
  • 每行縮進=假
  • 對象之間沒有括號或逗號。 每行每個對象
  • 不得影響平台和語言鍵數組

是否可以應用它而不必玩字符串替換?

因此,您可以使用 write 函數將每個元素轉換為 application/json 並使用 writer 屬性 indent=false

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

或者,如果您使用 mule 4.2,您可以直接使用application/x-ndjson並且它應該可以直接工作

%dw 2.0
output application/x-ndjson
---
payload

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM