不刷新页面的情况下,刷新页面数据异步调用(ajax)很不错,但有时候要传回一个对象json是个不错的选择
首先jsp页面ajax的调用:
$.ajax({ type: "POST", url: "/pages/om/listFan.action", data: "jsonReq=jsonGraphic", dataType : "json", error: function(data,transport){ alert("获取数据失败,请联系管理员!"); }, success: function(data){ $("#gather").html(data.gather); $("#totalCap").html(data.totalCap); $.each(data.fans,function(i,fan){ alert(fan.id); }); } });
上面这段是用jquery写的,看完下面的action的java类就明白上面的写法了
listFanAction的类的只要内容:
StringBuilder jsonTXT = new StringBuilder();
jsonTXT 这个就是我们需要返回的json串,来看看我们对他的构造
jsonTxT的最终数据格式:
{"gather":value[0],"totalCap":value[1],"fans":[{"id":value[2]},{"id":value[2]}]}
只要我们能把我们需要的数据构造成上述格式就能在页面像我们用java对象一样取数据了,
最后我们还需要用:
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8"); PrintWriter writer = this.getResponse().getWriter(); writer.write(jsonTXT.toString()); writer.flush(); writer.close(); return null;
这部分代码将我们构造好的json串返回到界面就可以了,注意到了没?上面js写的的data.gather就是我们拼接的"gather",而alert(fan.id);就是循环显示的内容,这个就是类似于我们java的Bean对象中的属性Bean对象一个理解意思。
上面就是我应用json的示例,有什么问题敬请指教!