2014-01-03 3 views
1

По некоторым причинам я просто не могу показаться, чтобы иметь возможность отображать свойства из этой строки JSON: http://www.easports.com/iframe/fifa14proclubs/api/platforms/PS4/clubs/51694/membersНе удается получить JSON свойства для отображения с помощью JQuery

Я сидел здесь за последние 2-3 часами, проверяя различные способы выбора отдельных свойств, таких как имя первого лица в массиве. Несколько селекторов, которые я пробовал:

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

Я всегда получаю ту же ошибку. msgstr "data.raw [0] не определено". Строка JSON действительно, я в состоянии вывести всю строку на мою страницу с помощью:

document.getElementById('output').innerHTML=data.toSource(); 

Синтаксического его в объект JSON дает мне другую ошибку, потому что уже есть объект JSON. Используя console.log (data), я могу правильно просматривать объект JSON в Firebug.

данные - это имя переменной объекта Javascript JSON, возвращаемое из моего оператора YQL.

Пожалуйста, если кто-нибудь может привести некоторые примеры того, как мне следует обращаться к свойствам указанной выше строки JSON, это было бы здорово.

UPDATE:

Вот функция обратного вызова из моего YQL заявления:

function cbfunc(json) 
{ 
    if (json.query.count) 
    { 
     var data = json.query.results.json; 
     $("#output").append(data.raw[0]["176932931"].name); 
    } 
+0

Вы попробовали console.log объект? –

+0

Да, и он отображается правильно. Я могу пройти через каждый из объектов и просмотреть их свойства. –

+0

Ваши работы json проверяют эту скрипту: http: //jsfiddle.net/q8xL3/ –

ответ

4

Вы должны использовать bracket notation как идентификаторы, начинающиеся с цифр недействительны

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

Пробовал это, и он все еще дает мне «data.raw [0] undefined». Не знаю, почему. :/ –

+0

он говорит, что ошибка заключается в том, что raw [0] является undefiend поэтому ["176932931"] также будет неопределенным –

+0

@ samer.j92, см. Это работает http://jsfiddle.net/q8Tqu/ У меня есть использованные данные из вашего URL-адреса – Satpal

1

в "176932931" является целым ключом, поэтому вам нужно получить доступ, например, json["176932931"].

Например

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

см скрипку here

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/

+0

Это ничего не делает. Не дает мне никаких ошибок и ничего не отображается на странице. –

+0

Исправлено исправление решения снова –

+0

Это дает мне ту же ошибку, что и раньше: TypeError: data.raw не определено –

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); 
Смежные вопросы