2012-09-18 77 views
1

我有一個2-D php數組,我通過JSON編碼。我在PHP二維數組是這樣的:如何在JavaScript中通過json解析關聯數組

$array['A'][12] = 8; 
$array['A'][8] = 21; 

$array['B'][17] = 19; 
$array['B'][9] = 12; 

當我做echo json_encode($array);並提醒這是阿賈克斯xmlhttp.responsetext我得到這個在我的提示框:{"A":{"12":"8","8":"21"},"B":{"17":"19","9":"12"}}

這是絕對的罰款。現在我需要在JavaScript中解析它,所以我使用了JSON.parse()函數。問題是當我訪問字符串的A和B字段。我在我的警告框中得到這個:Object object。如何解析這個關聯數組?我是AJAX和JSON的初學者,請大家幫忙。

+1

B是一個對象,以及A,你需要寫response.A [「12」]得到「8」 – Onheiron

回答

3
var array = JSON.parse(yourResponseData); 

array.A // Object 
array.A['12'] //8 

您無法通過點語法訪問鍵'12'becase沒有變量名可以以數字開頭。

+0

但是當我這樣做'var parsedJSON = JSON.parse(xmlHttp.responseText); alert(parsedJSON.A [8]);'我在警告框中獲取'undefined':( –

+1

使用引號或將它視爲第八個元素:alert(parsedJSON.A [「8」]); – ke20

+0

is there通過這種方式,我可以將對象A和對象B的所有鍵存儲在2個不同的變量中? –

0

您可以使用console.log()而不是alert()來查看解析的json對象的完整結構。 您可以使用輕鬆檢索值。符號或括號[]: 例如:

var returned = JSON.parse(tran.responseText); 
console.log(returned['A']['8']); //which should give you '21' based on your case