Я не могу прочитать JSON с getJson - PullRequest
3 голосов
/ 11 октября 2011

Я знаю, что на мой вопрос отвечали много раз, но я все еще не могу понять, как заставить один работать для меня. Я пытаюсь 2 дня, чтобы исправить мою проблему, читая форум, но у меня, вероятно, что-то не так в основах, которые я не могу найти и в которых мне понадобится ваша помощь.

У меня есть сервлет, который создает JSON (по крайней мере, я так думаю), а вот код

        JSONObject json = new JSONObject();
    for(int i=0; i<20; i++){
        JSONObject jsonItem = new JSONObject();
        jsonItem.put("position", positions[i]);
        json.accumulate("group", jsonItem);
    }

    String output = json.toString();

    response.setContentType("application/json");    
    PrintWriter out = response.getWriter();  
    out.print(output);
    out.flush();

Если я запускаю сервлет, я получаю следующее:

{
  "group": [
    {
      "position": 235
    },
    {
      "position": 61
    },
    {
      "position": 248
    },
    {
      "position": 206
    },
    {
      "position": 26
    },
    {
      "position": 329
    },
    {
      "position": 176
    },
    {
      "position": 180
    },
    {
      "position": 218
    },
    {
      "position": 83
    },
    {
      "position": 177
    },
    {
      "position": 142
    },
    {
      "position": 17
    },
    {
      "position": 249
    },
    {
      "position": 310
    },
    {
      "position": 369
    },
    {
      "position": 251
    },
    {
      "position": 256
    },
    {
      "position": 337
    },
    {
      "position": 63
    }
  ]
}

Мой jQuery выглядит следующим образом:

$(document).ready(function(){
  $("#clickMe2").click(function(){
      alert("something2");
    $.getJSON("/RandomNumGen",function(result){
        alert("something3");
      $.each(result, function(i, field){
        $("#myTarget").append(field + " ");
      });
    });
  });
});

Возможно, это не правильный способ прочитать его, но он никогда не переходит ко второму предупреждению "что-то3". Так что я думаю, что он никогда не читает JSON. Я пробовал много способов прочитать его, но, похоже, проблема была в том, что он никогда не читает JSON.

Я запускаю сервлет на Tomcat 7.0.22, и у меня есть @WebServlet("/RandomNumGen"), который, я думаю, означает, что мне не нужен веб-XML, но он не запущен, поэтому я решил создать web.xml как Что ж. Странная вещь в том, что когда я однажды пытался вернуть что-то с MIME «text / html» и получить его с обычным get $.get, он действительно получает это и печатает [Object object] в браузере.

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

1 Ответ

2 голосов
/ 11 октября 2011

Ваш JQuery не так.Вы должны изменить свой $.each.попробуйте это

$.each(result.group, function(i, field){
     $("#myTarget").append(field.position + " ");
});

Проверьте это http://jsfiddle.net/xV2vx/

...