首页 > 代码库 > 带百分号的数据转json
带百分号的数据转json
今天处理前后数据传输的时候遇到了问题。
前台拼参数是这样写的 ‘&rowData=http://www.mamicode.com/‘ + JSON.stringify(rowData);
后台解析出的对象却总是null,而且没有抛ParseException,具体写法如下:
DifferenceReportItem item = JSON.parse(rowDataToSelect, DifferenceReportItem.class);
entity检查了,没有错误。在debug后台接收的数据发现。后台接到的数据是这样的
{"timelyRateName":" 合 计","should_be":"2181","real_be":"358","undelivered_exceeded":"1231","delivered_exceeded":"101","undelivered_unexceeded":"491","rate_be":"16.02,"reportKey":"category_report"},莫名其妙少了“,多了个空格,成了这样"rate_be":"16.0 2,
果断怀疑是%的问题。于是前台做了如下处理:
var rateBeStr = rowData.rate_be;
rateBeStr = rateBeStr.substring(0,rateBeStr.length-1);
rowData.rate_be = rateBeStr+"%25";
解析完毕的json:{"timelyRateName":"合计","should_be":"2181","real_be":"358","undelivered_exceeded":"1231","delivered_exceeded":"101","undelivered_unexceeded":"491","rate_be":"16.0%","reportKey":"category_report"}
rateBeStr = rateBeStr.substring(0,rateBeStr.length-1);
rowData.rate_be = rateBeStr+"%25";
解析完毕的json:{"timelyRateName":"合计","should_be":"2181","real_be":"358","undelivered_exceeded":"1231","delivered_exceeded":"101","undelivered_unexceeded":"491","rate_be":"16.0%","reportKey":"category_report"}
OK,问题解决!
总结:JSON.stringify()函数处理串时会做转码,在有特殊符号的时候一定要注意转换。
在java代码中,把json解析成的对象为null而不报异常,就要看看串中是不是有特殊符号了。
欢迎留言说下遇到的其他特殊符号。
带百分号的数据转json
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。