2009-12-07 45 views
10

我正在使用jQuery的getJSON调用来检索JSON。在JavaScript/jQuery中,如何检索名称中包含空格的数据?

我的问题是,返回的JSON中的一些字段中有空格。

如何在不更改源数据的情况下从JSON中检索这些值?见线标记为 “ERROR” 下面:

$.getJSON(url, null, function(objData) { 
    $.each(objData.data, function(i, item) { 
    var zip = item.Zip; 
    var fname = item.First Name; //ERROR 
    }); 
}); 

例JSON:

jsonp123456789({"data":[{"Zip":"12345","First Name":"Bob"},{"Zip":"23456","First Name":"Joe"},{"Zip":"34567","First Name":"Bill"}]}) 

由于

+0

为什么有空间,在JSON的名字,如果你想使用它作为一个JavaScript对象的项目? – ChaosPandion 2009-12-08 00:05:41

+0

标识符中允许使用空格,但很容易。 – 2009-12-08 00:45:19

+0

我知道你可以做到。问题是为什么不只是使用名字,所以你可以使用漂亮的干净点语法。 – ChaosPandion 2009-12-08 01:04:03

回答

18

数组成员访问符号适用于对象为好。

$.getJSON(url, null, function(objData) { 
    $.each(objData.data, function(i, item) { 
    var zip = item.Zip; 
    var fname = item['First Name']; 
    }); 
}); 

您可以将此用于任意字符串(非法定标识符)以及变量。

var fieldName = "First Name"; 
var fname = item[fieldName]; 
8
$.getJSON(url, null, function(objData) { 
    $.each(objData.data, function(i, item) { 
    var zip = item.Zip; 
    var fname = item["First Name"]; //Changed this 
    }); 
}); 

参考使用作为重点,而不是点符号

相关问题