2010-01-19 78 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是不确定的”。如何使用JQuery解析我的JSON,以便我可以读取FirstName和Age属性?

谢谢!

+2

Brett Favre ... 58? – mportiz08 2010-01-19 19:46:51

回答

0

您正在使用名为result的变量,该变量不存在于您的函数中。也许,应该用json代替。

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

编辑:根据您的更新,我想那是因为你所引用的结果是不存在的,即items属性。传递给每个函数的空值会导致jQuery窒息内部函数。

+2

没有。该对象没有'items'属性。它只是一个对象数组。每个对象都有一个'Age','FirstName'等属性,所以我认为这是正确的,因为我拥有它。 - 这是回应一个评论,它应该是'json.items'而不是简单的'json'。 – tvanfosson 2010-01-19 14:59:29

+1

我还应该补充一点,我假设它不是一个字符串,即json字符串已经被“物化”了。 – tvanfosson 2010-01-19 15:00:10

+0

如何更改变量名称修复任何问题? – naugtur 2010-01-28 14:27:03

0

请检查您的完整代码,不仅是此处显示的“G”示例。我想,在某处有一个语法错误。 至于使用“结果” - 它可能是一个全局变量,但tvanfosson是正确的,我认为。这里看起来不太好。

+1

我认为G可能是缩小后的内部​​jQuery函数。 – tvanfosson 2010-01-19 15:03:47

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 – 2010-01-30 19:18:58