stuts2中的action 生成的json格式问题

用struts2的json插件,直接action 生成 json数据 ,生成的数据是 {"jsona":[{"total":"a","total2":"a2"}]}

我前台显示用的是easyui,数据格式是[{"total":"a","total2":"a2"}],如何能直接action生成这种数据格式呢?
最好不通过jsp页面转

3个回答

你用jquery回调的时候应该是把数组转换成json了吧.在后台转换吧。可以用这种方式。public ActionForward queryJsonString(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
logger.debug("json输出演示");
List list = tblorderdao.queryAllTblorder();
response.setContentType("text/plain;charset="
+ request.getCharacterEncoding());
PrintWriter pw = response.getWriter();
StringBuilder sb = new StringBuilder();
sb.append("{\"list\":[");
for (Tblorder tblorder : list) {
sb.append(String.format(
"{\"orderid\":%s,\"info\":\"%s\",\"customer\":\"%s\"},",
tblorder.getOrderid(), tblorder.getInfo(), tblorder
.getCustomer()));
}
if (!list.isEmpty()) {
sb.deleteCharAt(sb.length() - 1);
}
sb.append("]}");
pw.print(sb.toString());
return null;
}

yangbobo1992
yangbobo1992 晕,就改成struts2的格式啊. public string execute(){ logger.debug("json输出演示"); List<Tblorder> list = tblorderdao.queryAllTblorder(); response.setContentType("text/plain;charset=" + request.getCharacterEncoding()); PrintWriter pw = response.getWriter(); StringBuilder sb = new StringBuilder(); sb.append("{\"list\":["); for (Tblorder tblorder : list) { sb.append(String.format( "{\"orderid\":%s,\"info\":\"%s\",\"customer\":\"%s\"},", tblorder.getOrderid(), tblorder.getInfo(), tblorder .getCustomer())); } if (!list.isEmpty()) { sb.deleteCharAt(sb.length() - 1); } sb.append("]}"); pw.print(sb.toString()); return null; }
接近 8 年之前 回复
beihangyjs
beihangyjs struts2的,action里面怎么弄呢
接近 8 年之前 回复

[size=x-large]后台封装成String类型数据如:
"{'total':'a','total2':'a2'}" 前台接收即可,不行的话在eval('('+data+')')一下[/size]

beihangyjs
beihangyjs action页面里面怎么做呢
接近 8 年之前 回复

方法太多
1:拼字符串
2:用google的gson生成json数据
。。。
至于你action会生成{"jsona":[{"total":"a","total2":"a2"}]} 是因为你首先生成了一个object,object中又生成array,所以是这样的格式,你要生成array就和前台格式一样了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问