JQuery JSON разбор - PullRequest
       2

JQuery JSON разбор

8 голосов
/ 09 июня 2010

Как мне разобрать этот json с jQuery?

DayEvents : [{"0":"886","event_id":"886","1":"5029","user_id":"5029","2":"Professional","user_type":"Professional", ...

Ответы [ 2 ]

29 голосов
/ 09 июня 2010

Термин «синтаксический анализ» немного неуместен, поскольку он уже находится в формате JSON.Вам не нужно анализировать его, а просто получить к нему доступ.Если это была большая строка в формате JSON, то перед доступом к ней действительно нужно сначала проанализировать ее в пригодный для использования объект JSON.

Этот JSON содержит одно свойство, DayEvents, которое, в свою очередь, содержитмассив [].Вы можете получить доступ к свойствам используя оператор dot ..Вы можете получить элемент массива по указанному индексу, используя [index], где ноль 0 обозначает первый элемент.

var json = { DayEvents : [{"0":"886","event_id":"886","1":"5029","user_id":"5029","2":"Professional","user_type":"Professional" }]};
var firstDayEvent = json.DayEvents[0];

В свою очередь массив содержит объект {}.Или, может быть, больше, чем один?Вы можете иметь более одного элемента в массиве, затем вы должны увидеть [{}, {}, {}, ...], и тогда вы сможете получить доступ к каждому элементу в цикле следующим образом:

for (var i = 0; i < json.DayEvents.length; i++) {
    var dayEvent = json.DayEvents[i];
    // ...
}

Объект события одного дня имеет несколько свойств: 0, event_id, 1, user_id, 2 и т. Д. Вы не можете получить доступ к свойствам, начинающимся с числа, с помощью оператора точка ., затем вы хотели бы использовать обозначение скобки:

var zero = firstDayEvent['0'];
var eventId = firstDayEvent.event_id;
var one = firstDayEvent['1'];
var userId = firstDayEvent.user_id;
var two = firstDayEvent['2'];
// ...

alert(eventId); // 886
alert(two); // Professional

Чтобы узнать больше о JSON, отметьте этот урок .

7 голосов
/ 09 июня 2010

Украдено у .parseJSON () doc .

Пример:

Разобрать строку JSON.

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );

Ваш пример кода уже кажется объектом. Вам нужно было бы использовать фигурные скобки вокруг всего этого и проанализировать его с помощью parseJSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...