Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Помогите разобрать JSON (https://javascript.ru/forum/events/71378-pomogite-razobrat-json.html)

smart-create 14.11.2017 13:46

Nexus, Попробовал на всякий случай но как и ожидал получилась ошибка. дело в том что это скрипте мы пытаемся получить notify из массива notifies, а его там не было изначально.

В исходном массиве они лежат на одном уровне, вот.

Я так понимаю что действия с ним нужно произвести на этапе:

arr = arr.map(function(item){
       return item.notifies;
});


То есть если вместо это сделать вот так:
arr = arr.map(function(item){
       return item.notify.info;
});

То мы получим нужное значение info.

Может есть способ взять это значение и воткнуть его в item.notifies, по аналогии с .push() в массивах?

Nexus 14.11.2017 13:51

smart-create,
var json=[{
        card: 10000013,
        code: 752,
        dt: "2017-11-20 18:03:00",
        id: 903398,
        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}],
        notify: {id: 10, code: 752, caption: "Брюшная полость", info: "Вы                 записаны на Брюшная полость. За 6 часов до этог…ния нельзя принимать пищу, за 4 часа нельзя пить."},
        price: {id: 101850, code: 752, name: "Черевна порожнина", nameRu: "УЗИ брюшной полости (дети)", text: ""},
        sended_at:null
},{
        card: 10000013,
        code: 752,
        dt: "2017-11-20 18:03:00",
        id: 903398,
        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}],
        notify: {id: 10, code: 752, caption: "Брюшная полость", info: "Вы                 записаны на Брюшная полость. За 6 часов до этог…ния нельзя принимать пищу, за 4 часа нельзя пить."},
        price: {id: 101850, code: 752, name: "Черевна порожнина", nameRu: "УЗИ брюшной полости (дети)", text: ""},
        sended_at:null
}];
json=[].concat.apply([],json.map(function(item){
	return item.notifies.map(function(obj){
		obj.info=item.notify.info;
		
		return obj;
	});
}));
console.log(json);

smart-create 14.11.2017 15:37

Nexus, Все понял, большое спасибо, теперь мои отношения с JSON станут приятнее:dance:


Часовой пояс GMT +3, время: 23:52.