Привет, мне нужно преобразовать следующий объект JSON:
{
"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"
}
]
}
]
}
]
}
Я пытаюсь преобразовать это с каждым атрибутом, имеющим массив значений, где их значением является codeValue, а это массив этих строковых значений.
Это желаемый результат:
{
"products": [
{
"itemno": "123131",
"description: : "Big Widget",
"attributes": [
{
"color": ["RED_NO2", "BLUE-355"]
},
{
"chemicals": ["RED_PHOS", "CHLRN_BLCH"]
}
]
}
]
}
Это Dataweave. Я не могу определить, как получить имена атрибутов (например, цвет, химикаты в качестве ключей с нужными данными.
Существует не так много хороших примеров преобразования данных с помощью Dataweave, и я потратил много времени, пытаясь это выяснить.
Это один из потоков данных, который несколько попал туда, но не является решением:
%dw 1.0
%output application/json
---
payload.products map
{
"ItemNo" : $.sku,
"Desc" : $.description,
"Test" : "Value",
"Attributes" : $.attributes map
{
'$$' : $ pluck $.value
}
}
Ваша помощь очень ценится.