Как использовать jQuery .each () - я получаю значение, но оно неправильное - PullRequest
1 голос
/ 30 марта 2010

Я возвращаю объект JSON (в виде строки) через сервлет. Объект JSON выглядит следующим образом:

{"3": "Мартин Лютер", "30": "Борис Беккер", "32": "Джозеф Гебельс", "19": "Леонардо да Винчи", "31": "Адольф Гитлер"}

Мой jQuery выглядит следующим образом (представление данных верно, потому что я получаю правильно выглядящий результат из сервлета):

$.ajax( {
            type : "GET",
            url : "MyServlet",
            data : queryString + "count=" + variables,
            success : function(resultObj) {
              $.each(resultObj, function(key, value) {
                    $("#resultCount").html(key+", "+value); 
                 });
            }
        });

Однако, когда я пытаюсь распечатать результаты, то есть переменные key и value , я получаю число для ключа, но не число из JSONObject и пустую строку вместо значения.

По сути, вопрос заключается в том, как "извлечь" информацию из объекта JSON.

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

Ваш JSON не является массивом. Это должно выглядеть так:

[{ "3":"Martin Luther" },
 { "30":"Boris Becker" }]

или даже лучше:

[{ id: "3", name: "Martin Luther" },
 { id: "30", name: "Boris Becker" }]

Тогда вы можете цикл:

$.each(data, function(index, item) {
    alert(item.id + ' ' + item.name);
});
2 голосов
/ 30 марта 2010

Попробуйте указать dataType как json в своем вызове AJAX:

$.ajax( {
        type : "GET",
        url : "MyServlet",
        data : queryString + "count=" + variables,
        dataType : 'json',
        success : function(resultObj) {
          $.each(resultObj, function(key, value) {
                $("#resultCount").html(key+", "+value); 
             });
        }
    });
1 голос
/ 30 марта 2010

Пара вещей:

  1. Вы должны использовать тип данных JSON. Попробуйте простой метод $.getJSON.
  2. Ваша итерация правильная, но вы будете перезаписывать предыдущие результаты на каждой итерации (т. Е. Это будет просто запись Гитлера)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...