разбор сериализованного словаря <string, string> jquery - PullRequest
1 голос
/ 11 августа 2010

Мне удалось сериализовать коллекцию словарей.Я возвращаю его из веб-службы в jQuery ajax в виде строки, а затем помещаю возвращаемое значение в переменную javascript, которую я объявил в виде массива:

var myHistoryList = {};

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

Затем я пытаюсь пройтись по нему, кажетсячтобы не получить правильное значение.вместо этого он отображает код jQuery, как это:

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

, что довольно странно для меня.

Вот мой цикл for javascript:

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

Help!

Ответы [ 2 ]

0 голосов
/ 11 августа 2010

Вы также должны иметь возможность сделать цикл for следующим образом:

for (var i=0; i < myHistoryList.length; i++) {
   alert(myHistoryList[i].SomeProperty);
}
0 голосов
/ 11 августа 2010

jQuery или другая библиотека, которую вы включили, расширила прототип Object, поэтому все объекты имеют дополнительные вспомогательные функции. Вы можете использовать функцию hasOwnProperty в цикле for, чтобы проверить это условие:

for (var key in myHistoryList) {
    if (myHistoryList.hasOwnProperty(key)) {
        // do your thing
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...