2013-07-17 24 views
0

我收到了一堆JSON數據通過XHR請求,並得到如下數據傳回:的Javascript印刷與百分號html的

{"data_list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]} 

然後我試着來遍歷數據,並把它放在控制檯的console.log:

var len = json.data_list.length; 
for(var i = 0; i < len; i++) 
{ 
    console.log(json.data_list[i]); 
} 

但我沒有得到相同的百分比:

[1, "Title1", "0.24%"] 
[2, "Title2", "0.00%"] 

任何人都知道爲什麼我會爲前兩個字段獲取正確的數據,但百分比不一樣?即使我拿出JSON響應中的百分號,我仍然得到錯誤的數字。

假設該變量是有效的,我正在使用一個將json變量映射到json.data_list的庫。

我是沒那麼亮

某處XHR請求得到了由道場錯位。謝謝您的幫助!

+0

什麼庫您使用?由於它是一個字符串,所以沒有理由改變這個值。嘗試遍歷此庫外部的返回數據。 –

+0

Dojo,獲取xhr數據。所以它將結果映射到一個變量json,所以在json.data_list上工作的部分工作在json上。我會嘗試別的。 – cwill747

+0

它工作正常http://jsfiddle.net/8nTUM/所以你的問題必須在別的地方(也許在從JSON到物體的轉換?) – Christophe

回答

3

「數據列表」是一個無效的標識符,因爲您希望它的行爲,所以它被解釋爲減法。嘗試使用括號記號:

json["data-list"].length 

json["data-list"][i] 

DEMO:http://jsfiddle.net/7bgvV/

+0

對不起,剛剛編輯OP。假設這是一個有效的變量。我正在使用將其映射到json.data_list的庫。 – cwill747

+0

@ cwill747你沒有編輯第二個問題 - 'json.data-list [i]' – Ian

+0

我會在OP中編輯它,這不是複製和粘貼的代碼。爲了論證假裝它的作品。 – cwill747

2

var len = json.data-list.length;看起來像一個減法運算的JavaScript虛擬機。您需要使用這個方法:如果你有過這種返回數據的方法無法控制json['data-list'].length.

,嘗試這樣的事情:

var ajaxStr = '{"data-list" : [[1, "Title1", "0.54%"], [2, "Title2", "2.98%"]]}]'; 
ajaxStr = ajaxStr.replace(/\"([\w]+)-([\w]+)\"/g, "\"$1$2\""); 
+0

對不起,剛剛編輯OP。假設這是一個有效的變量。我正在使用將其映射到json.data_list的庫。 – cwill747