当前位置: 代码迷 >> J2EE >> JSON如何在前台显示
  详细解决方案

JSON如何在前台显示

热度:36   发布时间:2016-04-17 23:00:55.0
JSON怎么在前台显示
这是Controller的代码

@RequiresPermissions("expertinfo:expInfo:view")
@RequestMapping(value="init")
public void init(HttpServletRequest request,HttpServletResponse response){
List<ExpInfo> expInfos = expInfoService.getRandom(request.getParameter("all")==null?"":request.getParameter("all"));
/* 设置格式为text/json */
response.setContentType("test/json");
/* 设置字符集为'UTF-8' */
response.setCharacterEncoding("UTF-8");
try {
PrintWriter write = response.getWriter();
write.write(getJson(expInfos, 10));
write.flush();
write.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public String getJson(List list,int num){
JSONArray jsonArray = new JSONArray();
JSONObject jsonDate = new JSONObject();
for(int i = 0 ; i < list.size() ; i++){
Object object = list.get(i);
                        //将对象转换为JSON字符串
jsonArray.put(JsonMapper.toJsonString(object));
}
jsonDate.put("total", num);
jsonDate.put("list", jsonArray);
return jsonDate.toString();
}



以下是javascript的代码

Ext.Ajax
.request({
url : "ExpInfoController/init",
success : function(response, option) {
var jlist = eval('(' + response.responseText + ')');
for ( var i = 1; i < 11; i++) {
document.getElementById(i.toString() + "1").innerHTML = jlist.list[i - 1].expId;
document.getElementById(i.toString() + "2").innerHTML = jlist.list[i - 1].expName;
document.getElementById(i.toString() + "3").innerHTML = jlist.list[i - 1].expSex;
document.getElementById(i.toString() + "4").innerHTML = jlist.list[i - 1].expAge;
document.getElementById(i.toString() + "5").innerHTML = jlist.list[i - 1].categoryName;
document.getElementById(i.toString() + "6").innerHTML = jlist.list[i - 1].expRemark;
if (jlist.list[i - 1].check == 1)
document.getElementById(i.toString()).checked = true;
}
}
});


我也引入了ext-all.js和ext-base.js
但是在输出前台界面的时候,直接输出了JSON的字符串,根本就没走这个javascript,运行效果如下


新手求解答是怎么回事,如何改正才好。
------解决思路----------------------
 public String getJson(List list,int num){   这句代码的上面加个@ResponseBody 
------解决思路----------------------
dataType类型未设置成json

------解决思路----------------------
在响应的contorller上加@ResponseBody,传入到JS上面的数据就是json格式的。直接在页面显示就可以了
  相关解决方案