json数据的返回处理和编码转换

来源:互联网 发布:服务网络图片 编辑:程序博客网 时间:2024/04/30 13:50

其实,这俩个是可以分开不同2个问题,json数据的返回,编码转换,不过,我遇到的问题,需要把他们整合一下。
问题:ajax请求回去的,是乱码,白班getbytes()之后无奈,就连tomcat的server.xml配置都改了,加了ULIencode=”utf-8”,于是,想着用json数据返回看看。
首先,在struts2中,返回json格式,只要在一个配置文件中注明,返回的是json,并且,把继承的配置文件修改就ok了;但是,这里用的springmvc注解,但是他有@Responsebody,可以返回很多的格式,但是,不可能框架自己拼接,自己用字符串拼接也不对,有JSONObject可解决。
其实,json的数据格式和map是相似的,json是{key:value},数组[{key,value},{key,value}…],map是{key=value},所以,转化json如下:

JSONObject obj = new JSONObject();obj.put("notice", notice);

ajax代码:

$.ajax({  type:'post'  url:...,  datatype:'text', //我这里用json格式,数据拿不到  success:function(data){    var notice=data.notice;  },  error:function(XMLHttpRequest, textStatus, errorThrown){   console.log(errorThrown);  }});

可以,编码问题任然没解决,于是,用了这个:

String notice=URLEndoder.encode(obj.toString(),"utf-8");//然后返回这个转码过的值

然后,在前台在转码回来:

//只写success的部分:success:function(data){   var jsonStr=decodeURIComponet(data);   var json=JSON.parse(jsonStr);   var notice=json.notice;}
原创粉丝点击