嗨,我需要转换以下JSON对象:
const
我正在尝试用每个具有数组值的属性来对其进行转换,其中它们的值是codeValue,并且是这些字符串值的数组。
这是所需的输出:
{
"products": [
{
"itemno": "123131",
"description" : "Big Widget",
"attributes": [
{
"color": [
{
"value": "Red",
"codeValue": "RED_NO2"
},
{
"value": "Blue Licorice",
"codeValue": "BLUE-355"
}
]
},
{
"chemicals": [
{
"value": "Red Phosphorous",
"codeValue": "RED_PHOS"
},
{
"value": "Chlorine Bleach",
"codeValue": "CHLRN_BLCH"
}
]
}
]
}
]
}
这是Dataweave。我无法确定如何获取属性名称(即颜色,化学物质作为具有所需数据的键)。
关于使用Dataweave转换数据的例子很多,我花了很多时间试图弄清楚这一点。
这是某种实现的数据编织之一,但不是解决方案:
{
"products": [
{
"itemno": "123131",
"description: : "Big Widget",
"attributes": [
{
"color": ["RED_NO2", "BLUE-355"]
},
{
"chemicals": ["RED_PHOS", "CHLRN_BLCH"]
}
]
}
]
}
非常感谢您的帮助。
答案 0 :(得分:1)
您可以执行以下操作:
%dw 1.0
%output application/json
%function attributeCodeValues(attributes)
attributes map ((attr) ->
attr mapObject ((values, descriptor) ->
{
(descriptor): values map $.codeValue
}
)
)
---
payload.products map {
"ItemNo" : $.sku,
"Desc" : $.description,
"Test" : "Value",
"Attributes" : attributeCodeValues($.attributes)
}