java中如何用json接收一个list?

比如说我用了struts2在action中得到一个list在后台如何传递到前台?以及在前台jsp页面如何接收这个list?... 比如说我用了struts2 在action中得到一个list
在后台如何传递到前台?以及在前台jsp页面如何接收这个list?
展开
 我来答
杜爷1号
2015-07-12 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部

可以使用三种方式,用json接收一个list,方法如下:

1、使用org.json.JSONArray包:

JSONArray json = new JSONArray();
   for(User u : list){
       JSONObject jo = new JSONObject();
       jo.put("id", u.getId());
       jo.put("title", u.getName());
       json.put(jo);
   }

2、使用net.sf.json包下JSONArray的静态方法:fromObject(list), 这是网上大多是直接用此方法快捷转换JSON,但是对于list的要求就是其中的元素是字符串或对象,否则JSON不知道你想要的是什么数据:

JSONArray json = JSONArray.fromObject(list);

3、使用google的gson,将list转为json字符串:

Gson gson = new Gson(); 
String str = gson.toJson(list);
匿名用户
2012-12-11
展开全部
list可以直接传到前台的,用c标签 <c:forEach>标签可以直接得到,但在action中要写该list的有关的get set方法
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
QinQinMeCC
2012-12-11 · TA获得超过2017个赞
知道小有建树答主
回答量:808
采纳率:100%
帮助的人:564万
展开全部
第一种方法 在action类中 声明一个list集合如:private List list;生成getter和setter方法;
然后通过方法action的方法给list赋值;然后页面通过struts2标签接受即可;
<s:iterator var="ent" value="list">
<s:if test="%{#statu.odd}">
<font color="red"><s:property value="#ent" />
</font>
</s:if>
<s:else>
<s:property value="#ent" />
</s:else>
</s:iterator>

第二种方法 首先 在action类中;private String jsonData;生成getter和setter方法;
通过json 驱动包带的JSONArray json = JSONArray.fromObject(list);转换成json格式
setJsonData(json.toString());
在你返回成功跳到的页面 定义 :$(jsonData);
然后通过ajax 接受 就可以了!
建议使用第一种方法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式