我的输入是地图列表。
例如:
> [ { "key1" : "val1", "key2" : [item1,item2], "key3" : "obj1" }, {
> "key1" : "val2", "key2" : [item3,item4, item5], "key3" : "obj2" } ]
key2值可以是一个列表。
欲望输出:
输出应该是具有以下结构的对象列表。
[
{
"key1" : "val1",
"key2" : "item1",
"key3" : "obj1"
},
{
"key1" : "val1",
"key2" : "item2"
"key3" : "obj1"
},
{
"key1" : "val2",
"key2" : "item3",
"key3" : "obj2"
},
{
"key1" : "val2",
"key2" : "item4"
"key3" : "obj2"
},
{
"key1" : "val2",
"key2" : "item5"
"key3" : "obj2"
}
]
我如何使用数据编织来做到这一点?
答案 0 :(得分:0)
您必须在key2
上使用嵌套迭代。以下代码工作正常
%dw 1.0
%output application/json
---
flatten (payload map ((parent,pIndex) -> (
parent.key2 map {
key1 : parent.key1,
key2 : $,
key3 : parent.key3
}
)))
希望这有帮助。
答案 1 :(得分:0)
您可以使用以下内容:
%dw 1.0 %输出应用程序/ json
有效负载图((payload01,indexOfPayload01) - > { key1:payload01.key1, key2:payload01 [index] .key2, key3:payload01.key3 })
答案 2 :(得分:-1)
由于key2是一个arrray,你应该使用map运算符遍历它,并按照你希望的那样形成json final对象