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
都包含平台和语言键中的数组 就像这个例子:
{"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
- 每行缩进=false
- 对象之间没有括号或逗号。每行每个对象
- 不得影响平台和语言键数组
是否可以在不使用字符串替换的情况下应用它?
因此您可以使用写入函数将每个元素转换为 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
我的输入是一个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
- 每行缩进=false
- 对象之间没有括号或逗号。每行每个对象
- 不得影响平台和语言键数组
是否可以在不使用字符串替换的情况下应用它?
因此您可以使用写入函数将每个元素转换为 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