2013-03-23 85 views
0

我一直在試圖弄清楚什麼看起來像永遠。我的PHP工作正常。作爲一個例子,它返回以下,如果我從我的選擇下拉列表中選擇「格羅夫弓」:解析簡單JSON數組問題

[{"wtype":"Grove Bow","was":"1.55","wcc":"5","wbdmin":"12","wbdmax":"37"}] 

的問題是在我的.js成功的回調函數解析數據文件,我已經寫了:

$.post("get.php", 
    {w:wname}, 
    function(data) { 
     was = data[1].was; 
     wcc = data[2].wcc; 
     wbdmin = data[3].wbdmin; 
     wbdmax = data[4].wbdmax; 
     console.log($.parseJSON(data)); 
    } 
); 

控制檯返回什麼,我認爲是一個空數組:

[Object] 
0: Object 
length: 1 
__proto__: Array[0] 

如果我刪除$ .parseJSON()控制檯換貨政... RNS被張貼由我get.php文件相同的結果:

[{"wtype":"Grove Bow","was":"1.55","wcc":"5","wbdmin":"12","wbdmax":"37"}] 

我需要訪問陣列的這些元素,你可以通過我的努力來存儲他們看到的變量(不用擔心,我聲明他們早些時候在我的.js文件的頂部)。

Pliss halp!

+1

發佈的答案是正確的,除此之外,您還可以使用'},'json');'將數據返回自動解析爲json。 – Ohgodwhy 2013-03-23 01:01:15

回答

0

控制檯將返回對象

console.log($.parseJSON(data[0]));的陣列會給你你的對象

Additionaly,您應該訪問您的數據是這樣的:

var data=$.parseJSON(data); 
var myObj=data[0]; 
var was=myObj.was; 
var wcc=myObj.wcc; 
//and etc 
//or just data[0].was, data[0].wcc 

,當然還有更好的辦法,如規定在評論中,使用'json'數據類型,而不是手動調用parseJSON

0

您正試圖訪問字符串,就像它是一個對象噸。

嘗試此

$.post("get.php", 
    {w:wname}, 
    function(data) { 
     var json = $.parseJSON(data)[0]; 
     was = json.was; 
     wcc = json.wcc; 
     wbdmin = json.wbdmin; 
     wbdmax = json.wbdmax; 
    } 
); 
1

Jquery.post()

數據

類型:PlainObject或字符串 一個普通對象或字符串被髮送到服務器與請求。

PlainObject: 一種方法的正常運行,必須通過有對象,如:

{ 'someKey' : 'someVal' , 'sK2' : 'sV2' } 
0

jQuery的ajax的部分看起來不錯, 嘗試純JavaScript在回調函數:

function(data) { 
    var json = JSON.parse(data); 
    console.log(json.wtype); //Grove Bow 
    console.log(json.was); //1.55 
    //and so on... 
}