我需要使用using子中的dataweave从负载数组中检索值。
我尝试使用++技术,但是它会返回错误,或者当我将values变量设置为数组时,结果中会出现“”。
Input:
{
"Shops":
[{
"StoreName": "Store1",
"Sales":
[{"dayDate": "01/01/2019",
"product": "A",
"quantity": 2
},
{"dayDate": "02/01/2019",
"product": "B",
"quantity": 1
}
]
}]
}
我希望输出:
[Store1, [01/01/2019, A, 2], [02/01/2019, B, 1]]
但实际是
["Store1, [01/01/2019, A, 2], [02/01/2019, B, 1]"]
如何删除“”,或者是否有更好的方法来获得预期的输出?
答案 0 :(得分:0)
您需要pluck
函数,该函数将对象转换为数组(文档here)。
%dw 2.0
output application/json
var shops = {
"Shops": [
{
"StoreName": "Store1",
"Sales": [
{
"dayDate": "01/01/2019",
"product": "A",
"quantity": 2
},
{
"dayDate": "02/01/2019",
"product": "B",
"quantity": 1 }]}]}
var res = shops.Shops map (shop) ->
using (sales = shop.Sales map (sale) -> sale pluck $)
[shop.StoreName] ++ sales
---
flatten(res)
这超出了您所描述的范围,因此它也可以处理多个商店。如果您需要能够处理多个商店,则可能不想使用flatten
,但是它在那里,因此输出与您的要求相匹配。
输出:
[
"Store1",
[
"01/01/2019",
"A",
2
],
[
"02/01/2019",
"B",
1
]
]