带百分号的数据转json

今天处理前后数据传输的时候遇到了问题。

前台拼参数是这样写的 '&rowData=' + 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"}
OK,问题解决!
总结:JSON.stringify()函数处理串时会做转码,在有特殊符号的时候一定要注意转换。
在java代码中,把json解析成的对象为null而不报异常,就要看看串中是不是有特殊符号了。
欢迎留言说下遇到的其他特殊符号。
原文地址:https://www.cnblogs.com/superJF/p/4126326.html