无法通过jQuery显示JSON属性

时间:2014-01-03 17:22:23

标签: javascript jquery json object yql

出于某种原因,我似乎无法显示此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);
   } 

4 个答案:

答案 0 :(得分:4)

您需要使用bracket notation,因为以数字开头的标识符无效

$("#output").append(data.raw[0]["176932931"].name);

答案 1 :(得分:1)

因为"176932931"是一个整数键,所以您必须访问json["176932931"]

例如

data.raw[0]["176932931"].name

请参阅小提琴here

答案 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);
    }
}

如果这对您有用,则无需将对象引用到数据,只需使用自己的对象。

JS小提琴:http://jsfiddle.net/q8xL3/2/

答案 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);
相关问题