19.05.2016, 20:50
|
Новичок на форуме
|
|
Регистрация: 19.05.2016
Сообщений: 6
|
|
Добавление данных в 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, 19.05.2016 в 21:21.
|
|
19.05.2016, 21:12
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
dmi,
а запятые где?
|
|
19.05.2016, 21:16
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
dmi,
циклом обнаружить нужный элемент в массиве и по его индексу добавить нужное свойство в элемент.
|
|
19.05.2016, 21:22
|
Новичок на форуме
|
|
Регистрация: 19.05.2016
Сообщений: 6
|
|
Сообщение от рони
|
dmi,
а запятые где?
|
извиняйте - уже добавил
Только циклом? громоздкое получится решение.
|
|
19.05.2016, 21:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
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>
|
|
19.05.2016, 21:30
|
Новичок на форуме
|
|
Регистрация: 19.05.2016
Сообщений: 6
|
|
рони,
Благодарю, уже копаю в эту сторону
|
|
19.05.2016, 22:18
|
Новичок на форуме
|
|
Регистрация: 19.05.2016
Сообщений: 6
|
|
Сообщение от Rise
|
dmi, что значит "parent" для 37 что 39 и 40 его родители или наоборот дети?
|
ошибся - там вместо parent - child
но не суть - попробовал метод Рони и он сработал. Но если я с помощью его функции к примеру хочу добавить еще одну вложенность скажем тоже самое после Итем 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, 19.05.2016 в 22:26.
|
|
19.05.2016, 22:25
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 458
|
|
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
}]
или всё вместе
|
|
19.05.2016, 22:27
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
dmi,
так идите по дереву ищите нужное
|
|
19.05.2016, 22:40
|
Новичок на форуме
|
|
Регистрация: 19.05.2016
Сообщений: 6
|
|
Rise,
вопрос как с помощью функции туда поместить, а не как правильно написать слово parent или child
)
В принципе через some работает - но не подходит для многомерного массива
при попытке обратится к элементу в духе a.parent.Itemid - ничего не происходит
|
|
|
|