2010-08-11 29 views
1

我已經設法序列化一個Dictionary集合。我從Web服務到jQuery的AJAX返回它作爲一個字符串,然後我將返回值到JavaScript變量,我已經聲明爲數組:解析序列化的字典<string,string> jquery

var myHistoryList = {}; 

.... 
success: function(retVal) { 
        myHistoryList = retVal.d;     
       } 

然後我試圖通過它循環,這似乎是沒有得到正確的價值。而不是它顯示這樣的jQuery代碼:

trimStart function(){return this.replace(/^\s+/,"")} 

這對我來說很奇怪。

繼承人我的JavaScript的for循環:

for (var yahoo in myHistoryList) { 
        $('#myUseTable > tbody:last') 
         .append('<tr><td>' + [yahoo] + 
           '</td><td>' + myHistoryList[yahoo] + 
           '</td>'); 
       }; 

幫助!

+0

要退JSON,XML,是什麼? jquery可以處理XML和JSON,但是如果它返回XML,則需要將ajax調用的dataType設置爲XML,否則它將默認爲JSON。 – 2010-08-11 03:56:19

+0

其Json傑夫。它通過retVal.d返回的值是:「{'cow':'moo','cat':'meow'}」。 – 2010-08-11 04:20:13

回答

0

jQuery或其他包含的庫已經擴展了Object的原型,因此所有對象都有附加的輔助函數。您可以使用hasOwnProperty功能在for循環檢查該條件:

for (var key in myHistoryList) { 
    if (myHistoryList.hasOwnProperty(key)) { 
     // do your thing 
    } 
} 
0

,你也應該能夠做一個for循環,像這樣:

for (var i=0; i < myHistoryList.length; i++) { 
    alert(myHistoryList[i].SomeProperty); 
} 
相關問題