Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.11.2017, 11:05
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

Помогите разобрать JSON
Добрый день. В ответе от сервера имеется вот такой JSON

{
        card: 10000013
        code: 752
        dt: "2017-11-20 18:03:00"
        id: 903398
        notifies: Array(3)
                0:{id: 9161, sended_at: "2017-11-14 09:28:46", params: 0}
                1:{id: 9162, sended_at: "2017-11-18 18:03:00", params: 0}
                2:{id: 9163, sended_at: "2017-11-20 16:03:00", params: 0}
        notify: {id: 10, code: 752, caption: "Брюшная полость", info: "Вы                 записаны на Брюшная полость. За 6 часов до этог…ния нельзя принимать пищу, за 4 часа нельзя пить."}

        price: {id: 101850, code: 752, name: "Черевна порожнина", nameRu: "УЗИ брюшной полости (дети)", text: "", …}
        sended_at:null
}


Это уведомление о записи на прием. Из этого всего мне нужны значения которые находятся внутри массива notifies.

Сложность в том что таких уведомлений может быть с десяток за раз.
Самый простой способ прогнать ответ от сервера через несколько циклов for и таким образом достучатся до значений в notifies, но при условии что таких уведомлений может быть больше 10 такой цикл станет настоящим адом для устройства клиента.

Подскажите пожалуйста как сделать это более лаконично? Быть может есть способ вырезать из всего ответа параметры которые находятся в notifies и запихнуть в отдельный массив, то есть что бы получилось вот так:

{
        {id: 9161, sended_at: "2017-11-14 09:28:46", params: 0}
        {id: 9162, sended_at: "2017-11-18 18:03:00", params: 0}
        {id: 9163, sended_at: "2017-11-20 16:03:00", params: 0}
        //.... и т.д.
}
Ответить с цитированием
  #2 (permalink)  
Старый 14.11.2017, 11:14
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 1,776

Сообщение от smart-create
        notifies: Array(3)
                0:{id: 9161, sended_at: "2017-11-14 09:28:46", params: 0}
                1:{id: 9162, sended_at: "2017-11-18 18:03:00", params: 0}
                2:{id: 9163, sended_at: "2017-11-20 16:03:00", params: 0}
Что за формат данных?
json + php print_r?
Ответить с цитированием
  #3 (permalink)  
Старый 14.11.2017, 11:27
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

Nexus, это из консоли вывод. То есть json + console.log()

Ответить с цитированием
  #4 (permalink)  
Старый 14.11.2017, 11:28
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

вот пример
Ответить с цитированием
  #5 (permalink)  
Старый 14.11.2017, 11:34
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 1,776

smart-create, получить массив массивов "notifies" можно так:
json=json.map(function(item){return item.notifies;});
console.log(json);
//Далее объединяю массивы "notifies"
json=[].concat.apply([],json);
console.log(json);

Последний раз редактировалось Nexus, 14.11.2017 в 11:38.
Ответить с цитированием
  #6 (permalink)  
Старый 14.11.2017, 11:46
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

Nexus, Большое спасибо. Но это пока всех проблем не решает, у меня выходит вот такая структура

результат

Но мне по сути не нужны все эти массивы в которых еще по n массивов. Существует ли способ свести это все до одного единственного массива в котором будет просто список json объектов?

То есть в моем случае, вот так:

{
        {id: 9161, sended_at: "2017-11-14 09:28:46", params: 0}
        {id: 9162, sended_at: "2017-11-18 18:03:00", params: 0}
        {id: 9163, sended_at: "2017-11-20 16:03:00", params: 0}
        //.... и т.д.
}
Ответить с цитированием
  #7 (permalink)  
Старый 14.11.2017, 11:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 1,776

smart-create, смотрите пост №5
Ответить с цитированием
  #8 (permalink)  
Старый 14.11.2017, 12:14
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

Nexus, большое спасибо, много нового для меня открыли.

Хочу попросить еще с одним, последним вопросом, помочь. Мне нужно из исходного массива, вытащить объект notify и его значение info,
вот оно и запихнуть его в то что получается после всех манипуляций. То есть вот так
Ответить с цитированием
  #9 (permalink)  
Старый 14.11.2017, 12:16
Профессор
Отправить личное сообщение для smart-create Посмотреть профиль Найти все сообщения от smart-create
 
Регистрация: 25.10.2016
Сообщений: 151

У меня есть идея как это сделать с помощью костылей и циклов, но похоже для этого есть куча методов о которых я ранее не знал(
Ответить с цитированием
  #10 (permalink)  
Старый 14.11.2017, 12:19
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 1,776

smart-create, попробуйте так:
json=[].concat.apply([],json.map(function(item){
	return item.notifies.map(function(obj){
		obj.info=item.notify.info;
		
		return obj;
	});
}));
console.log(json);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите выбрать: JQuery, JSON или AJAX? Apollo9 Библиотеки/Тулкиты/Фреймворки 4 14.04.2017 02:44
Помогите json в таблицу Germont Общие вопросы Javascript 1 10.03.2016 14:20
Помогите. обработка JSON ответа heyBro AJAX и COMET 1 14.10.2015 14:49
Помогите решить задачу на jQuery с использованием JSON, очень нужно!!!! staseward jQuery 1 10.04.2015 09:01
Как разобрать json Dtri jQuery 24 05.01.2015 17:42