如何解决对象数组到包含所有所述对象的单个对象 Dataweave
我正在尝试转换以下对象数组输入:
[
{
"Id": "3","Code": "4190484","Expense": "Huge Expense "
},{
"Id": "4","Code": "271","Expense": "Big Expense"
},{
"Id": "3","Code": "433","Expense": "No Expense"
}
]
到这个单个对象的输出:
{
"Id": "3","Expense": "Huge Expense ","Id": "4","Expense": "Big Expense","Id": "3","Expense": "No Expense"
}
您将如何在 Dataweave 中完成此操作?
解决方法
您还可以使用该语言的 dynamic elements 功能:
%dw 2.0
output application/json
---
{(payload)}
就像@aled 在他的回答中解释的那样,你不应该在 JSON 中使用重复的键。
,您可以使用 reduce() 函数,但请注意,在 JSON 中使用重复键取决于实现。我认为在 JSON 中使用重复键是一个糟糕的设计。它可能会导致意外行为。某些实现可能会忽略重复项。例如,DataWeave 将仅返回带有 payload.Id
的结果对象的一个 Id。
如果即使在我提到的之后你仍然想要继续,这是一个例子:
%dw 2.0
output application/json
---
// I don't recommend to use duplicate keys
payload reduce ((item,acc = {}) -> acc ++ item)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。