Разбор JSON с JQuery - PullRequest
       4

Разбор JSON с JQuery

2 голосов
/ 19 января 2010

У меня есть JSON, который выглядит следующим образом:

[{"Age":35,"FirstName":"Peyton","LastName":"Manning"},  
 {"Age":31,"FirstName":"Drew","LastName":"Brees"},  
 {"Age":58,"FirstName":"Brett","LastName":"Favre"}]

Этот JSON передается в функцию, которую я создал, называется parseJSON. Эта функция выглядит так:

function parseJSON(result)
{
  $.each(result.items,function(i,item) {
    alert("First Name: " + item.FirstName);
    alert("Age: " + item.Age);
  });
}

Когда я запускаю этот код, я получаю ошибку JavaScript, которая говорит: "G не определено" Как мне проанализировать мой JSON с JQuery так, чтобы я мог прочитать свойства FirstName и Age?

Спасибо!

Ответы [ 5 ]

2 голосов
/ 19 января 2010

Самый простой анализ JSON по нативному JS:

function parseJSON(result)
{
  for(var i in result) {
    var item = result[i];
    alert("First Name: " + item.FirstName);
    alert("Age: " + item.Age);
  } 
}
1 голос
/ 19 января 2010

Вот рабочая функция, которая использует ваш пример.

var result = [{
    "Age": 35,
    "FirstName": "Peyton",
    "LastName": "Manning"
}, {
    "Age": 31,
    "FirstName": "Drew",
    "LastName": "Brees"
}, {
    "Age": 58,
    "FirstName": "Brett",
    "LastName": "Favre"
}];

function parseJSON(result){
    $.each(result, function(index, object){
        $.each(object, function(i, o){
            alert(i + " = " + o);
        })
    })
}

parseJSON(result);
0 голосов
/ 19 января 2010

С json.org : json_sans_eval . Это анализирует строку JSON без опасности использования eval.

0 голосов
/ 19 января 2010

Проверьте ваш полный код, а не только пример, показанный здесь для «G». Я предполагаю, что где-то есть синтаксическая ошибка. Что касается использования «результата» - это может быть глобальная переменная, но я думаю, что tvanfosson прав. Не выглядит хорошо здесь.

0 голосов
/ 19 января 2010

Вы используете переменную с именем result, которая не существует в вашей функции. Возможно, его следует заменить на json.

function parseJSON(json) 
{ 
  $.each(json,function(i,item) { 
    alert("First Name: " + item.FirstName); 
    alert("Age: " + item.Age); 
  }); 
}

РЕДАКТИРОВАТЬ : исходя из вашего обновления, я думаю, это потому, что вы ссылаетесь на свойство для результата, который не существует, а именно items. Нулевое значение, передаваемое в каждую функцию, заставляет jQuery задушить внутреннюю функцию.

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