2 qq 36151264 qq_36151264 于 2017.01.11 17:38 提问

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

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

10个回答

ljheee
ljheee   Rxr 2017.01.11 17:51
已采纳

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

ljheee
ljheee 回复qq_36151264: ni 说的前台是用 jquery获取吗?最好用Servlet获取json解析完后,把要显示的数据项 交给jquery
11 个月之前 回复
qq_36151264
qq_36151264 jquery的getjson怎么获取呢
11 个月之前 回复
qq_36498920
qq_36498920   2017.01.11 17:37

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

qq_36151264
qq_36151264 json能存放list集合吗?数据比较多,字符串太麻烦
11 个月之前 回复
yushiyoufight
yushiyoufight   Rxr 2017.01.11 18:27

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

z935580231
z935580231   2017.01.11 19:05

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

qq_37315806
qq_37315806   2017.01.11 21:14

// 将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();
}
}

qq_37315806
qq_37315806 直接搬以前写的代码了
11 个月之前 回复
datouniao1
datouniao1   2017.01.11 21:24

首先你的前台要发送一个请求,请求的种类很多,但是一般是采用的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
}
希望对你有所帮助!

datouniao1
datouniao1   2017.01.11 21:24

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

JE_GE
JE_GE   2017.01.11 22:14
wzdlovewen
wzdlovewen   2017.01.12 08:54

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

ak_random
ak_random   2017.01.12 16:56

把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中的每一个值都可以取出来
}
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!