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

其实,这俩个是可以分开不同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;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值