Mule 4:如何从数组生成文本文件
Mule 4 : how to generate a Text file from an Array
我必须从数组生成文本文件。为此,我采用以下方法:
- 使用 Dataweave 映射方法从 json 有效负载创建 Java 数组
- 使用 For each 组件遍历数组
- 在 foreach 中使用 File:Write 组件并通过将它们转换为字符串来写入元素,如下所示:
write(payload,"application/java")
并将文件写入模式设置为追加
有没有更好的方法来实现这个?
数组示例:
[["Amam","ssss","Bibek","Raghu","Rajeev"],["Apple","Banana","Orange","Pineapple","Pears"]]
在文本文件中,我希望输出为:
Amam ssss Bibek Raghu Rajeev
Apple Banana Orange Pineapple Pears
您不需要使用 foreach 遍历数组。您可以直接使用 File:Write 组件,在其“内容”中使用以下数据编织表达式 属性:
%dw 2.0
output application/csv header=false
---
payload map (item, index) -> val: item joinBy " "
此 dataweave 表达式具有以下输入:
[
["Amam","ssss","Bibek","Raghu","Rajeev"],
["Apple","Banana","Orange","Pineapple","Pears"]
]
结果:
Amam ssss Bibek Raghu Rajeev
Apple Banana Orange Pineapple Pears
尽管 Dataweave 表达式中的输出格式为 CSV,但生成的文件将是包含生成的输出的文本文件(文件名由 [=24= 的“路径”属性 确定] 组件,并且可以类似于“my-text-file.txt”,例如)。
此处描述了支持的输出格式及其属性:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-formats
也许这就是您要找的
%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 将在尝试解析它时抛出错误。
我必须从数组生成文本文件。为此,我采用以下方法:
- 使用 Dataweave 映射方法从 json 有效负载创建 Java 数组
- 使用 For each 组件遍历数组
- 在 foreach 中使用 File:Write 组件并通过将它们转换为字符串来写入元素,如下所示:
write(payload,"application/java")
并将文件写入模式设置为追加
有没有更好的方法来实现这个?
数组示例:
[["Amam","ssss","Bibek","Raghu","Rajeev"],["Apple","Banana","Orange","Pineapple","Pears"]]
在文本文件中,我希望输出为:
Amam ssss Bibek Raghu Rajeev
Apple Banana Orange Pineapple Pears
您不需要使用 foreach 遍历数组。您可以直接使用 File:Write 组件,在其“内容”中使用以下数据编织表达式 属性:
%dw 2.0
output application/csv header=false
---
payload map (item, index) -> val: item joinBy " "
此 dataweave 表达式具有以下输入:
[
["Amam","ssss","Bibek","Raghu","Rajeev"],
["Apple","Banana","Orange","Pineapple","Pears"]
]
结果:
Amam ssss Bibek Raghu Rajeev
Apple Banana Orange Pineapple Pears
尽管 Dataweave 表达式中的输出格式为 CSV,但生成的文件将是包含生成的输出的文本文件(文件名由 [=24= 的“路径”属性 确定] 组件,并且可以类似于“my-text-file.txt”,例如)。
此处描述了支持的输出格式及其属性:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-formats
也许这就是您要找的
%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 将在尝试解析它时抛出错误。