#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’)» не был запущен должным образом…