日期:2014-05-16  浏览次数:20318 次

jquey的ajax和java应用json
不刷新页面的情况下,刷新页面数据异步调用(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的示例,有什么问题敬请指教!