如何从后台通过json传递一个集合到前台

后台有一个集合,需要传到前台,前台是异步刷新,通过json如何传递一个集合

list集合 里面都是后台处理好的数据,把list集合放到一个json对象里,后台用PrintWriter(json对象)去向前台输出

先转成json字符串...然后用PrintWriter去向前台输出

前端用的什么框架,你应该想把数据存在table里面展示吧

1.后台将数据序列化
2.前台ajax,$.getJson
你可以试试

// 将Java对象转为json,并通过输出流写回客户端
public void java2Json(List object, String[] excludes) {
// 使用json-lib将PageBean对象转为json数据
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);// 指定哪些属性不需要
//防止死循环
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
String json = JSONArray.fromObject(object, jsonConfig).toString();
// 通过输出流将json数据写回客户端
ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");
try {
ServletActionContext.getResponse().getWriter().print(json);
} catch (IOException e) {
e.printStackTrace();
}
}

首先你的前台要发送一个请求,请求的种类很多,但是一般是采用的ajax:
$.ajax({
url : "../index",
type : 'post',
data : {
"data" : data
},
success : function(text) {
alert(text);
}
});
然后你要在后台接收一下,当然后台你使用的语言不同方法也是不同,就说java吧
String id=request.getParameter("data");
//根据id查找数据并且获取到一个json
然后:
response.getWriter().write(json);
这个样子,前台ajax里面的
success:function(text){
text--->就是从后台返回的json
}
希望对你有所帮助!

补充:ajax里面的
data:{
data:id
}
前面的data是不需要加双引号的

后台添加json-lib。jar

http://blog.csdn.net/sgls652709/article/details/49017639

我觉得转换对象是前台该做的事,通信过程应该只专注字符串的传递,大家都用string去传,我觉得是一个很好的规范吧

把list转换成一个json字符串jsonStr,然后response.getWriter().write(jsonStr);
前台ajax接收,success:function(data) //data就是后台传过来的jsonStr
{
var a = JSON.parse(data);
for(var i = 0; i<a.length;i++)
{
alert(a[i]); //list中的每一个值都可以取出来
}
}