Warm tip: This article is reproduced from serverfault.com, please click

mule-数据编织

(mule - Dataweave)

发布于 2019-06-24 15:46:42

我的输入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 包含平台和语言键中的数组,例如以下示例:

{"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的每个对象
  • 每行缩进=假
  • 对象之间没有方括号或逗号。每行每个对象
  • 不得影响平台和语言键数组

是否可以在不必使用String replace的情况下应用此功能?

Questioner
gtx911
Viewed
0
machaval 2019-06-25 05:41:30

因此,你可以使用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)

或者,如果你使用的是m子4.2,则可以直接使用application/x-ndjson,它应该可以直接工作

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