2010-01-19 3 views
2

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

[{"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?

Спасибо!

+2

Brett Favre ... 58? – mportiz08

ответ

0

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

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

EDIT: на основе вашего обновления, я думаю, это потому, что вы ссылаетесь свойство на результат, который не существует, а именно items. Пустое значение, передаваемое каждой функции, вызывает jQuery для подавления внутренней функции.

+2

Нет. Объект не имеет свойства 'items'. Это просто массив объектов. Каждый объект имеет свойство «Age», «FirstName» и т. Д., Поэтому я считаю, что это правильно, как и у меня. - это было в ответ на комментарий, что он должен быть 'json.items', а не просто' json'. – tvanfosson

+1

Я также должен добавить, что я предполагаю, что это не строка, т. Е. Строка json уже была «объективирована». – tvanfosson

+0

Как изменить имя переменной, чтобы исправить любые проблемы? – naugtur

0

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

+1

Я думаю, что G, вероятно, является внутренней функцией jQuery после минимизации. – tvanfosson

1

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

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); 
2

Самый простой синтаксический анализ JSON носителями JS:

function parseJSON(result) 
{ 
    for(var i in result) { 
    var item = result[i]; 
    alert("First Name: " + item.FirstName); 
    alert("Age: " + item.Age); 
    } 
} 
+0

Я согласился, обойти jQuery полностью –

Смежные вопросы