Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.05.2016, 20:50
dmi dmi вне форума
Новичок на форуме
Отправить личное сообщение для dmi Посмотреть профиль Найти все сообщения от dmi
 
Регистрация: 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.
Ответить с цитированием
  #2 (permalink)  
Старый 19.05.2016, 21:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dmi,
а запятые где?
Ответить с цитированием
  #3 (permalink)  
Старый 19.05.2016, 21:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dmi,
циклом обнаружить нужный элемент в массиве и по его индексу добавить нужное свойство в элемент.
Ответить с цитированием
  #4 (permalink)  
Старый 19.05.2016, 21:22
dmi dmi вне форума
Новичок на форуме
Отправить личное сообщение для dmi Посмотреть профиль Найти все сообщения от dmi
 
Регистрация: 19.05.2016
Сообщений: 6

Сообщение от рони Посмотреть сообщение
dmi,
а запятые где?
извиняйте - уже добавил

Только циклом? громоздкое получится решение.
Ответить с цитированием
  #5 (permalink)  
Старый 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>
Ответить с цитированием
  #6 (permalink)  
Старый 19.05.2016, 21:30
dmi dmi вне форума
Новичок на форуме
Отправить личное сообщение для dmi Посмотреть профиль Найти все сообщения от dmi
 
Регистрация: 19.05.2016
Сообщений: 6

рони,
Благодарю, уже копаю в эту сторону
Ответить с цитированием
  #7 (permalink)  
Старый 19.05.2016, 22:18
dmi dmi вне форума
Новичок на форуме
Отправить личное сообщение для dmi Посмотреть профиль Найти все сообщения от dmi
 
Регистрация: 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.
Ответить с цитированием
  #8 (permalink)  
Старый 19.05.2016, 22:25
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 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
}]

или всё вместе
Ответить с цитированием
  #9 (permalink)  
Старый 19.05.2016, 22:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

dmi,
так идите по дереву ищите нужное
Ответить с цитированием
  #10 (permalink)  
Старый 19.05.2016, 22:40
dmi dmi вне форума
Новичок на форуме
Отправить личное сообщение для dmi Посмотреть профиль Найти все сообщения от dmi
 
Регистрация: 19.05.2016
Сообщений: 6

Rise,
вопрос как с помощью функции туда поместить, а не как правильно написать слово parent или child

)
В принципе через some работает - но не подходит для многомерного массива
при попытке обратится к элементу в духе a.parent.Itemid - ничего не происходит
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление / добавление JSON Alexander Belov Events/DOM/Window 16 01.05.2015 23:51
Вставка json данных 1lider AJAX и COMET 5 14.02.2015 21:18
Сортировка JSON данных в цикле Fareastaz jQuery 12 15.03.2013 20:20
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Преобразование данных с сервера в JSON frolvict Общие вопросы Javascript 1 04.04.2010 12:26