Добавление данных в JSON
Добрый день.
Перерыл весь интернет и посмотрел несколько уроков для ликбеза по json но не нашел ответа на свой вопрос есть json код который я получаю через ajax к примеру такой
[
{"Itemid":35,
"name":"test",
"hide":0
},
{"Itemid":36,
"name":"test22",
"hide":0
},
{"Itemid":37,
"name":"test33",
"hide":0
},
{"Itemid":38,
"name":"test32",
"hide":0
}
]
Мне надо вставить в строку с Itemid 37 вставить такое
[{"Itemid":39,
"name":"test44",
"hide":0
},
{"Itemid":40,
"name":"test55",
"hide":0
}]
чтоб получилось так
[
{"Itemid":35,
"name":"test",
"hide":0
},
{"Itemid":36,
"name":"test22",
"hide":0
},
{"Itemid":37,
"name":"test33",
"hide":0,
"parent": [{"Itemid":39,
"name":"test44",
"hide":0
},
{"Itemid":40,
"name":"test55",
"hide":0
}]
},
{"Itemid":38,
"name":"test32",
"hide":0
}
]
единственное что накопал - через concat - но это совсем не то Скажите хотя б куда посмотреть пожалуйста Заранее благодарен. |
dmi,
а запятые где? |
dmi,
циклом обнаружить нужный элемент в массиве и по его индексу добавить нужное свойство в элемент. |
Цитата:
Только циклом? громоздкое получится решение. |
dmi,
<script>
var json = [
{"Itemid":35,
"name":"test",
"hide":0
},
{"Itemid":36,
"name":"test22",
"hide":0
},
{"Itemid":37,
"name":"test33",
"hide":0
},
{"Itemid":38,
"name":"test32",
"hide":0
}
], arr = [{"Itemid":39,
"name":"test44",
"hide":0
},
{"Itemid":40,
"name":"test55",
"hide":0
}]
json.some(function(a) {
return a.Itemid == 37 && (a.parent = arr)
})
document.write(JSON.stringify(json))
</script>
|
рони,
Благодарю, уже копаю в эту сторону |
Цитата:
но не суть - попробовал метод Рони и он сработал. Но если я с помощью его функции к примеру хочу добавить еще одну вложенность скажем тоже самое после Итем 39 - то ничего не работает пример для понимания
[
{"Itemid":35,
"name":"test",
"hide":0
},
{"Itemid":36,
"name":"test22",
"hide":0
},
{"Itemid":37,
"name":"test33",
"hide":0,
"parent": [{"Itemid":39,
"name":"test44",
"hide":0
"parent": [{"Itemid":41,
"name":"test45",
"hide":0
},
{"Itemid":42,
"name":"test56",
"hide":0
}]
},
{"Itemid":40,
"name":"test55",
"hide":0
}]
},
{"Itemid":38,
"name":"test32",
"hide":0
}
]
|
dmi, тогда так:
[{
"Itemid":35,
"name":"test",
"hide":0
},{
"Itemid":36,
"name":"test22",
"hide":0
},{
"Itemid":37,
"name":"test33",
"hide":0,
"childId": [39,40]
},{
"Itemid":38,
"name":"test32",
"hide":0
},{
"Itemid":39,
"name":"test44",
"hide":0
},{
"Itemid":40,
"name":"test55",
"hide":0
}]
или так:
[{
"Itemid":35,
"name":"test",
"hide":0
},{
"Itemid":36,
"name":"test22",
"hide":0
},{
"Itemid":37,
"name":"test33",
"hide":0
},{
"Itemid":38,
"name":"test32",
"hide":0
},{
"Itemid":39,
"name":"test44",
"hide":0,
"parentId":37
},{
"Itemid":40,
"name":"test55",
"hide":0,
"parentId":37
}]
или всё вместе |
dmi,
так идите по дереву ищите нужное |
Rise,
вопрос как с помощью функции туда поместить, а не как правильно написать слово parent или child ) В принципе через some работает - но не подходит для многомерного массива при попытке обратится к элементу в духе a.parent.Itemid - ничего не происходит |
| Часовой пояс GMT +3, время: 23:14. |