【问题标题】:Dataweave - Array of Objects to Object per lineDataweave - 每行对象的对象数组
【发布时间】: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的每个对象
  • Indent=false 每行
  • 对象之间没有括号或逗号。每行每个对象
  • 不得影响平台和语言键数组

是否可以在不使用字符串替换的情况下应用它?

【问题讨论】:

    标签: arrays mule tostring dataweave


    【解决方案1】:

    因此您可以使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2022-01-06
      • 2022-01-09
      相关资源
      最近更新 更多