我无法用getJson读取JSON
问题描述:
我知道我的问题已经回答了很多次,但我仍然无法弄清楚如何为我做一件事。 我现在想通过阅读论坛来解决我的问题,但我可能在基础知识上有些问题,我找不到,而且我需要您的帮助。我无法用getJson读取JSON
我有一个创建一个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();
一个servlet如果我跑我得到了以下这个servlet:
{
"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上运行servlet,我有@WebServlet("/RandomNumGen")
,我认为这意味着我不需要web xml但没有运行,所以我决定创建一个web.xml 。 奇怪的是,当我试着用MIME“text/html”返回一些东西,然后用普通文件得到$.get
,它确实得到了它,并在浏览器上打印[Object object]
。
显然我之前没有使用过JSON,因为我在教程中运行得非常快,所以我可能会错过基本知识。
答
你的jquery是错误的。你必须改变你的$.each
。试试这个
$.each(result.group, function(i, field){
$("#myTarget").append(field.position + " ");
});
检查了这一点 http://jsfiddle.net/xV2vx/
谢谢你的修正,更多的是介绍我jsfiddle.net!然而,我不认为我的错误的“每个”是没有正确运行“alert('something3')”的原因...... –