我必须从数组生成文本文件。为此,我采用以下方法:
write(payload,"application/java")
并将File Write Mode设置为Append 有没有更好的方法来实现这一目标?
数组示例:
[["Amam","ssss","Bibek","Raghu","Rajeev"],["Apple","Banana","Orange","Pineapple","Pears"]]
在文本文件中,我希望输出为:
Amam ssss Bibek Raghu Rajeev
Apple Banana Orange Pineapple Pears
答案 0 :(得分:2)
您不需要使用foreach遍历数组。您可以直接使用File:Write组件,并在其“ content”属性中使用以下dataweave表达式:
<Router>
<div id="allBody" class="body">
<Header className="header" id="header" />
<div className="contentAll">
<BreadCrumb LinkToHome={LinkToHome} />
<div className="mainBody">{AppRoutes}</div>
</div>
</div>
</Router>
此数据编织表达式具有以下输入:
int number;
void setup()
{
Serial.begin(9600);
}
void loop()
{
number=0;
Serial.flush();
while(Serial.available() == 0)
{
//just waiting while nothing entered
}
while (Serial.available()>0)
{
number = Serial.read() - '0';
// read the number in buffer and
//remove ASCII text for "0"
}
Serial.print("You entered: ");
Serial.println(number);
Serial.print(number);
Serial.print(" multiplied by two is ");
number = number * 2;
Serial.println(number);
}
结果:
>You entered: 4
>4 multiplied by two is 8
>You entered: -38
>-38 multiplied by two is -76
尽管Dataweave表达式中的输出格式为CSV,但结果文件将是一个包含结果输出的文本文件(文件名由File:Write组件的“ path”属性确定,并且可以类似例如“ my-text-file.txt”。
受支持的输出格式及其属性在此处进行描述:https://docs.mulesoft.com/mule-runtime/4.3/dataweave-formats
答案 1 :(得分:1)
也许这就是您要寻找的
%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在尝试解析时会引发错误。