使用JQuery访问JSONP对象中的元素

使用JQuery访问JSONP对象中的元素,jquery,arrays,json,object,jsonp,Jquery,Arrays,Json,Object,Jsonp,我在访问JSONP对象中的内部元素时遇到问题。我的JSONP如下所示: [ { "EntityID": "", "Address1": "", "Address2": "", "Address3": "", "Adult": bool, "Option": "", "NameFirst": "", "NameLast": "", }, { "EntityID": "", "Address1": "",

我在访问JSONP对象中的内部元素时遇到问题。我的JSONP如下所示:

[
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": bool,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  },
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": bool,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  }
]
data = jsonp[i].EntityID;
如何访问阵列?如果我使用如下方式访问它:

[
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": bool,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  },
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": bool,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  }
]
data = jsonp[i].EntityID;
它返回的所有内容都是未定义的

编辑

在Google Chromes控制台中,它显示以下错误:

未捕获的TypeError:无法读取未定义的属性“EntityID”

我也尝试过:

data = jsonp[1];
它只返回单个字符,无论它是字母、数字还是“{”

我尝试过其他几种方法,但它们要么一次返回所有内容,要么返回一个字符,要么返回未定义的内容。我如何才能正确访问这些内容

编辑

我正在使用的JQuery脚本。我认为它相当标准。我以前在TwittersAPI上使用过它

$(document).ready(function GetData() {
    var url = "http://";
    $.getJSON(url + '?callback=?', null, function(Data) {
        for(i in Data) {
            foo = Data[i];
            $('#Facilities').append('<div>' + foo[0].EntityID + '</div>');
            console.log(foo);
        } 
    })
})
$(document).ready(函数GetData(){
var url=“http://”;
$.getJSON(url+'?回调=?',null,函数(数据){
对于(数据中的i){
foo=数据[i];
$('#Facilities').append('+foo[0].EntityID+'');
console.log(foo);
} 
})
})

您的json无效。字符串值应包含在双引号中。因此,您不能在值中给出
bool
。您可以使用
true
false

var jsonp=[
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": true,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  },
  {
    "EntityID": "",
    "Address1": "",
    "Address2": "",
    "Address3": "",
    "Adult": true,
    "Option": "",
    "NameFirst": "",
    "NameLast": "",
  }
]
然后你可以访问如下元素:

alert(jsonp[0].EntityID);
如果您想使用bool作为值, 像这样使用“成人”:“bool”,

编辑

从问题的编辑部分, 它只返回单个字符,无论是字母、数字还是“{”

然后响应应该是字符串。这就是为什么在给出索引时要获取每个字符。所以首先需要将字符串解析为json对象

使用
jQuery.parseJSON(

jsonp=jQuery.parseJSON(jsonp);
然后可以访问该对象中的元素

$(document).ready(function GetData() {
    var url = "http://";
    $.getJSON(url + '?callback=?', null, function (Data) {
        Data = jQuery.parseJSON(Data);
        for (i in Data) {
            foo = Data[i];
            $('#Facilities').append('<div>' + foo[0].EntityID + '</div>');
            console.log(foo);
        }
    })
})
$(document).ready(函数GetData(){
var url=“http://”;
$.getJSON(url+'?回调=?',null,函数(数据){
Data=jQuery.parseJSON(数据);
对于(数据中的i){
foo=数据[i];
$('#Facilities').append('+foo[0].EntityID+'');
console.log(foo);
}
})
})

像这样?@AnoopJoshi这正是我所想的。但它仍然返回未定义的。@AnoopJoshi当我在Google Chrome的控制台中看到这个错误时,它说它是“未捕获的TypeError:无法读取未定义的属性'EntityID',听起来你手上有一个字符串,而不是JSONP,如果你访问数组中的值时设置单个字符,可以是字母、数字或括号。如果可以使用jQuery,可以使用:将字符串转换为JSON对象。在响应中,它有“true”和“false”。我用“bool”来强调它的类型。@Corey你检查过那把小提琴了吗?@Corey你能告诉我们获取jsonp的代码吗。?