我正在使用Mule 4.4,并尝试读取文件,然后使用Dataweave转换为JSON。这是文件(它没有标头),文件中的最后一行为空白
abc|Milk|3.9|
lmn|Butter|5.5|
xyz|Bread|1.6|
在读取文件时,将mime类型设置为application/csv(尽管其管道分隔),这会是一个问题吗?
我遇到的问题是,我想将文件内容转换为json,如下所示:
[
{
"id": "abc",
"product": "Milk",
"price": 3.9
},
{
"id": "lmn",
"product": "Butter",
"price": 5.5
},
etc
]
然而,它显示如下:(重复第一行)
[
{
"id": {
"abc|Milk|3.9|": "lmn|Butter|5.5|"
}
},
{
"id": {
"abc|Milk|3.9|": "xyz|Bread|1.6|"
}
}
]
我认为这种情况正在发生,因为骡子假设第一行包含标题.这是我的数据编织:
%dw 2.0
output application/json
---
payload map (value,index)->
{
id:value
}
请尝试以下方法。
%dw 2.0
input payload application/csv separator="|", header = false
output application/json
---
payload map (value,index)->
{
id:value[0],
product: value[1],
price: value[2]
}
它以这种方式显示是因为您将其设置为将第一行视为标题行。您需要将阅读器的标题
值设置为false,以便它理解第一行实际上不是标题。
除此之外,还需要将分隔符设置为管道字符。
例如,如果您将其作为文本读取并纯粹使用dataweave对其进行处理,它将如下所示:
%dw 2.0
output application/json
---
read(payload, "applicatin/csv", {"header": false, "separator": "|" }) map (
{
id: $[0],
product: $[1],
price: $[2]
}
)
我从不同的来源获得不同长度的CSV文件。CSV 中的列是不同的,唯一的例外是每个 CSV 文件将始终有一个 Id 列,可用于绑定不同 CSV 文件中的记录。一次需要处理两个这样的 CSV 文件。该过程是从第一个文件中获取 Id 列并匹配第二个 CSV 文件中的行,并创建包含第一个和第二个文件中内容的第三个文件。id 列可以在第一个文件中重复。例如,下面给出。请注意,第一个文件可能有 18 到 19
我有一个这样的 CSV: 我使用spliter逐行处理记录,然后在dataweave中使用splitBy“,”将记录转换为地图。但我如何才能为“;”做另一个层次的拆分呢?SplitBy不允许多个分隔符,数据编织中的CSV类型也不允许。 最终,我想要一个这样的JSON: 有什么想法吗?
我正在数据编织中查找 < code>lookup("myflow ",$) 我正在将整个 xml 传递给调用的流。流中接收的数据类型为“java.util.LinkedHashMap”。我正在尝试放置一个 ForEach 处理器并在集合中指定 xpath3。此获取错误,并显示消息: 根异常堆栈跟踪:java.lang.IllegalArgument异常:无法将类型为“java.util.Linke
我有CSV,下面有空白行和额外的牧人,如下所示: 我想读取productID的值 这是我在dataweave中编写的代码: 将有效载荷返回为: 这里有什么建议吗?我们可以使用Groovy/MEL/regex表达式吗?如何在Dataweave中使用行忽略? 我们可以使用Groovy/regex跳过前两行吗? 我正面临着下面的groovy的性能问题。Mule花了太多时间来转换甚至1MB的文件。对此还有
我有以下要求。 输入为 我需要将上面的json数组转换为以下输出格式: