本次应用场景:
后台:spring mvc
前端:jquery ajax json.js
spring mvc代码:
@RequestMapping(....)
public @ResponseBody String getSomething(HttpServletResponse response)
{
response.setHeader("Charset","UTF-8"); //设置编码为utf-8
//业务代码
//return str;
//之前是直接返回字符串,研究发现,spring使用注解时在代码内部使用了硬编码iso-8859-1
//后续补充:如果将str重新编码后返回也是可以完成同样效果,
//代码: return new String(str.getBytes("utf-8"),"iso-8859-1");
//如果使用如下方式返回就没有问题。
response.getWriter().print(str);
return null;
}
这样返回给前端时,只要通过JSON.parse(str)就可以将ajax返回的字符串转换成json对象(注,返回的字符串要满足json格式,{“id”:"101"}或者数组形式[{“id”:"101"},{“id”:"102"}])
如果返回的是一个List<Object>类型的list,
var jsonStr = JSON.JSON.stringify(lsit) //将list转换成json串
var json = var obj = eval('(' +jsonStr+ ')');//将json串转换成json对象,然后进行操作
如:var id = json.id;
后续补充:其实在requestMapping中设置produces编码为utf-8即可 方便又省事。
@RequestMapping(produces={"application/json;charset=UTF-8"}).
更多推荐
spring mvc 返回给jquery ajax 请求的数据包含中文问题
发布评论