Преобразование JSON в новый
Есть JSON:
{
"data":[
{
"{#ACLNAME}":"access-list inside line 1 extended permit icmp any any"
},
{
"{#HINTS}":"0"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip object-group ALL any"
},
{
"{#HINTS}":"580848704"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip host 10.3.2.1 any"
},
{
"{#HINTS}":"0"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip host 10.2.23.2 any"
},
{
"{#HINTS}":"267629"
}
]
}
Количество {#ACLNAME} и {#HINTS} всегда разное, но они парные, то есть четное количество.
Его нужно переделать в такой вид:
{
"data":[
{
"{#ACLNAME}":"access-list inside line 1 extended permit icmp any any",
"{#HINTS}":"0"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip object-group ALL any",
"{#HINTS}":"580848704"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip host 10.3.2.1 any",
"{#HINTS}":"0"
},
{
"{#ACLNAME}":"access-list inside line 1 extended permit ip host 10.2.23.2 any",
"{#HINTS}":"267629"
}
]
}
Заранее спасибо за помощь!
Ответы (1 шт):
Автор решения: ryzen
→ Ссылка
Используя самый простой цикл, можно реализовать данную задачу
const json = {
data: [
{
"{#ACLNAME}": "access-list inside line 1 extended permit icmp any any"
},
{
"{#HINTS}": "0"
},
{
"{#ACLNAME}":
"access-list inside line 1 extended permit ip object-group ALL any"
},
{
"{#HINTS}": "580848704"
},
{
"{#ACLNAME}":
"access-list inside line 1 extended permit ip host 10.3.2.1 any"
},
{
"{#HINTS}": "0"
},
{
"{#ACLNAME}":
"access-list inside line 1 extended permit ip host 10.2.23.2 any"
},
{
"{#HINTS}": "267629"
}
]
};
const result = { data: [] };
for (let i = 0; i < json.data.length; i += 2) {
result.data.push({ ...json.data[i], ...json.data[i + 1] });
}
console.log(result);