Добавление данных в 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, время: 05:35. |