jolt трансформация из плоской структуры в массив
у меня есть json, плоская структура мне нужно его часть выделит в массив а остальную сохранить и оставить плоской. Вот исходная структура:
{
"NAME": "COMPANY",
"GUID": "ZT1111111",
"ADRID": "00000000219",
"TYPE": "XXXXX25LT",
"COUNTRY": "KZ",
"CITY": null,
"STREET": "- ",
"HOME": null,
"ZIP": null
}
Хочу получить:
{
"NAME": "COMPANY",
"GUID": "ZT1111111",
"ADRID": "00000000219",
"Adresses": [
{
"TYPE": "XXXXX25LT",
"COUNTRY": "KZ",
"CITY": null,
"STREET": "-",
"HOME": null,
"ZIP": null
}
]
}
Пробывал такую схему:
[
{
"operation": "shift",
"spec": {
"NAME": "NAME",
"GUID": "GUID",
"ADRID": "Addresses[].AdrId",
"TYPE": "Addresses[].Type",
"COUNTRY": "Addresses[].Country",
"CITY": "Addresses[].City",
"STREET": "Addresses[].Street",
"HOME": "Addresses[].Home",
"ZIP": "Addresses[].Zip"
}
}]
Но она преобразует каждый элемент :
{
"NAME" : "COMPANY",
"GUID" : "ZT1111111",
"Addresses" : [ {
"AdrId" : "00000000219"
}, {
"Type" : "XXXXX25LT"
}, {
"Country" : "KZ"
}, {
"City" : null
}, {
"Street" : "- "
}, {
"Home" : null
}, {
"Zip" : null
} ]
}
Просьба помочь!
Ответы (2 шт):
Автор решения: Zt.
→ Ссылка
возможно не совсем тот инструмент, но если не принципиально то такое легко можно сделать с помощью той же утилиты jq :
jq '{NAME,GUID,ADRID,Adresses: [{TYPE,COUNTRY,CITY,STREET,HOME,ZIP}]}'
Автор решения: Aleksandr
→ Ссылка
Схема оказалась очень простой:
[
{
"operation": "shift",
"spec": {
"NAME": "NAME",
"GUID": "GUID",
"ADRID": "Addresses[0].AdrId",
"TYPE": "Addresses[0].Type",
"COUNTRY": "Addresses[0].Country",
"CITY": "Addresses[0].City",
"STREET": "Addresses[0].Street",
"HOME": "Addresses[0].Home",
"ZIP": "Addresses[0].Zip"
}
}]