【问题标题】:Mule 4 : how to generate a Text file from an ArrayMule 4:如何从数组生成文本文件
【发布时间】:2020-08-12 14:36:45
【问题描述】:

我必须从一个数组生成一个文本文件。为此,我采用以下方法:

  1. 使用 Dataweave 映射方法从 json 有效负载创建 Java 数组
  2. 使用 For 每个组件遍历数组
  3. 在 foreach 中使用 File:Write 组件并通过将元素转换为 String 来写入元素,如下所示:write(payload,"application/java") 并将文件写入模式设置为 Append

有没有更好的方法来实现这一点?

数组示例:

[["Amam","ssss","Bibek","Raghu","Rajeev"],["Apple","Banana","Orange","Pineapple","Pears"]] 

在文本文件中,我希望输出为:

Amam ssss Bibek Raghu Rajeev 
Apple Banana Orange Pineapple Pears 

【问题讨论】:

    标签: dataweave mule4


    【解决方案1】:

    您不需要使用 foreach 遍历数组。您可以直接使用 File:Write 组件,在其“内容”属性中使用以下 dataweave 表达式:

    %dw 2.0
    output application/csv header=false
    ---
    payload map (item, index) -> val: item joinBy " "
    

    此数据编织表达式具有以下输入:

    [
      ["Amam","ssss","Bibek","Raghu","Rajeev"], 
      ["Apple","Banana","Orange","Pineapple","Pears"]
    ] 
    

    结果:

    Amam ssss Bibek Raghu Rajeev
    Apple Banana Orange Pineapple Pears
    

    虽然 Dataweave 表达式中的输出格式是 CSV,但结果文件将是一个包含结果输出的文本文件(文件名由 File:Write 组件的“路径”属性确定,可以类似于“my-text-file.txt”,例如)。

    此处描述了支持的输出格式及其属性:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-formats

    【讨论】:

    • @Oliver Hey 感谢我们的回答,但我的目标是编写 TEXT 文件而不是 CSV 文件。
    • 您能否提供文本文件布局或您期望的输出示例?谢谢。
    • 附上我的输入和预期输出的示例。谢谢
    • 谢谢,@Bibek。我无法解析您提供的示例数组。也许你的java数组是一个字符串数组?类似:[["val1.1", "val1.2"],["val2.1", "val2.2"]]。如果您实现了流程,您可以在 Studio 中对其进行调试并评估有效负载消息部分,并查看输出为 application/json 时的外观。
    • @BibekKr.Bazaz 是否为 CSV 并不重要。这只是文本文件的一种格式。如果最终的文本文件正是您想要的,那么就可以了。
    【解决方案2】:

    也许这就是你要找的东西

    %dw 2.0
    output text/plain
    var inputText = [
      ["Amam","ssss","Bibek","Raghu","Rajeev"], 
      ["Apple","Banana","Orange","Pineapple","Pears"]
    ] 
    ---
    (inputText map ($ joinBy " ")) joinBy "\n"
    

    这是与 Olivier 在上一个答案中使用的格式相同的输入。

    如前所述输入格式:

    [{"Amam","ssss","Bibek","Raghu","Rajeev"},{"Apple","Banana","Orange","Pineapple","Pears"}]
    

    最初给出的 JSON 或 Java 无效,DW 在尝试解析时会抛出错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多