2014-02-06 4 views
0

Я использую $ .getJSON jquery для получения данных, которые мне нужны с сервера. Вот как это выглядит:

$.getJSON("/dataParser/parseVoltage",function(jsondata, status) 
{ 
    if (status == "error") { 
    console.log("Error encountered while getting the data from server."); 
    } 
    else if (status == "success") 
    { 
     alert(jsondata.constructor.name + " array : " + $.parseJSON(jsondata)); 
     console.log(jsondata); 
     for(i= 0; i< jsondata.length; i++) 
     { 
      console.log(jsondata[i]); 
     }    
    } 
}); 

JSON строку, которая будет приходить с сервера генерируется C. Таким образом, в основном, strng выглядит следующим образом ..

render("[{\"y-data\":0, \"x-data\":2.513},{\"y-data\":1, \"x-data\":3.038},{\"y-data\":2, \"x-data\":12.625}]"); 

Поскольку Im предполагая, что я буду получать форматированный файл json, я пробовал это

$ .parseJSON (jsondata); но вывод нуль

Я также попытался это:

jsondata.constructor.name выход Массив

, когда я пытался регистрировать данные, это является результатом

console.log(jsondata) .. output is [object Object],[object Object],[object Object],[object Object],[object Object],[object Object] 

, когда я пытался напечатать все данные, используя для цикла это результат

for(i= 0; i< jsondata.length; i++) 
{ 
alert("arraydata" + i + " " + jsondata[i]); 
} 

the result is 
arraydata0 [object Object] 
arraydata1 [object Object] 
arraydata2 [object Object] 
arraydata3 [object Object] 
... 

когда я проверить, что именно ответ сервера, это результат ..

[{"y-data":0, "x-data":2.513},{"y-data":1, "x-data":3.038},{"y-data":2, "x-data":12.625},{"y-data":3, "x-data":1.24},{"y-data":4, "x-data":1.013},{"y-data":5, "x-data":3.317}] 

Теперь, как сделать Я получаю/читаю данные такого типа?

+0

Это JSONP (по существу, возвращает JavaScript), а не JSON. Они совершенно разные. Кроме того, если вы * получили JSON обратно, он будет неявно проанализирован jQuery, вызывая '$ .parseJSON()' и передавая ему то, что не является строкой JSON, не будет работать. –

+1

Например: 'jsondata [0] ['y-data']' –

+0

возможный дубликат [Access/process (вложенные) объекты, массивы или JSON] (http://stackoverflow.com/questions/11922383/access-process -nested-objects-arrays-or-json) –

ответ

2

вы можете получить доступ к JSON, который легко:

jQuery.each(jsondata, function() { 
    alert(this['y-data'] + ' - ' + this['x-data']); 
}); 

или непосредственно:

alert(jsondata[0]['y-data']); 
Смежные вопросы