Я хочу объединить два объекта json. Трудность здесь состоит в том, что слияние находится в массиве. Единственный способ узнать, где слить, - это свойство «имя».JSON merge and override array
- Есть ли простое решение, чтобы сделать то, что я хочу, с текущей структурой?
- Не могли бы вы изменить структуру JSON, например, иметь имя в качестве ключа для облегчения слияния?
Мой главный объект состоит в следующем:
{
"servers": {
"services": [
{
"name": "api"
"prop1": "XXX",
"prop2": "XXX"
},
{
"name": "web"
"prop1": "XXX",
"prop2": "XXX"
}
]
}
}
нуждается
сервис "Web", чтобы быть overrriden с:
{
"servers": {
"services": [
{
"name": "web"
"prop1": "overriden value"
}
]
}
}
Объект должен быть результат:
{
"servers": {
"services": [
{
"name": "api"
"prop1": "XXX",
"prop2": "XXX"
},
{
"name": "web"
"prop1": "overriden value",
"prop2": "XXX"
}
]
}
}
Так что это проблема? Вы можете перебирать массив и изменять значения, которые соответствуют некоторым критериям, или вы можете изменить структуру json. –
Да, это то, что я сделал здесь: http://pastebin.com/rgTVqY8X метод переопределения использует https://github.com/lukebond/json-override. Это не очень красиво, но это делает работу – Zaibes