出于某种原因,我似乎无法显示此JSON字符串中的属性: http://www.easports.com/iframe/fifa14proclubs/api/platforms/PS4/clubs/51694/members
我在这里待了最后2-3个小时,尝试了不同的方法来选择单个属性,例如数组中第一个人的名字。我试过几个选择器:
$("#output").append(data.raw[0].176932931.name);
$("#output").append(data.raw[0][0].name);
我总是得到同样的错误。 “data.raw [0]未定义”。 JSON字符串有效,我可以使用以下命令将整个字符串输出到我的页面:
document.getElementById('output').innerHTML=data.toSource();
将其解析为JSON对象会给我另一个错误,因为它已经是一个JSON对象。通过使用console.log(数据),我能够在Firebug中正确查看JSON对象。
data 是从我的YQL语句返回的Javascript JSON对象变量的名称。
如果有人能提供一些关于我应该如何访问上述JSON字符串的属性的例子,那就太好了。
更新
这是我的YQL语句中的回调函数:
function cbfunc(json)
{
if (json.query.count)
{
var data = json.query.results.json;
$("#output").append(data.raw[0]["176932931"].name);
}
答案 0 :(得分:4)
您需要使用bracket notation,因为以数字开头的标识符无效
$("#output").append(data.raw[0]["176932931"].name);
答案 1 :(得分:1)
答案 2 :(得分:0)
告诉我这是否适合您:
function cbfunc(json)
{
$each(json, function(key, object){
console.log(key, object);
});
var raw = query.results.json.raw;
console.log(raw );
// uncomment it if you want some extra check.
if (/*typeof data.raw !=='undefined' && */data.raw.length > 0)
{
//console.log(data.raw[0]["176932931"].name);
//$("#output").append(data.raw[0]["176932931"].name);
}
}
如果这对您有用,则无需将对象引用到数据,只需使用自己的对象。
答案 3 :(得分:0)
.count不是json对象的属性。试试这个:
var something = {"raw":[{"176932931":{"name":"Shipdawg","blazeId":176932931,"clubStatus":0,"onlineStatus":0,"nucleusId":2266699357,"personaName":"Shipdawg"},"182141183":{"name":"Beks8","blazeId":182141183,"clubStatus":0,"onlineStatus":0,"nucleusId":2272736228,"personaName":"Beks8"},"219929617":{"name":"ChelseaFC_26","blazeId":219929617,"clubStatus":0,"onlineStatus":0,"nucleusId":2304510098,"personaName":"ChelseaFC_26"},"457588267":{"name":"Lazy__Rich","blazeId":457588267,"clubStatus":0,"onlineStatus":0,"nucleusId":2495578386,"personaName":"Lazy__Rich"},"517570695":{"name":"x0__andrew__0x","blazeId":517570695,"clubStatus":0,"onlineStatus":1,"nucleusId":2549150176,"personaName":"x0__andrew__0x"},"912396727":{"name":"mizz00-","blazeId":912396727,"clubStatus":0,"onlineStatus":1,"nucleusId":1000118566560,"personaName":"mizz00-"},"915144354":{"name":"MisterKanii","blazeId":915144354,"clubStatus":2,"onlineStatus":0,"nucleusId":2281969661,"personaName":"MisterKanii"}}]}
function cbfunc(json)
{
if (json.raw.length)
{
$("#output").append(json.raw["0"]["176932931"].name);
}
}
cbfunc(something);