Я не могу прочитать JSON с помощью getJSON

#jquery #json #getjson #servlet-3.0

#jquery #json #getjson #сервлет-3.0

Вопрос:

Я знаю, что на мой вопрос отвечали много раз, но я все еще не могу понять, как заставить его работать для меня. Я уже 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   " ");
      });
    });
  });
});
  

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

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

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

Ответ №1:

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

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

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

Комментарии:

1. Спасибо за исправление и больше о том, чтобы представить меня jsfiddle.net ! Однако я не думаю, что мое неправильное «each» было причиной того, что «alert (‘something3’)» не был запущен должным образом…