带百分号的数据转json

本文讲述了在前后端数据传输过程中遇到的JSON字符串特殊字符处理问题。前端使用JSON.stringify()方法时,特殊字符会被转码,导致后台解析失败。通过去除特定字符并替换为%25,成功解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

前台拼参数是这样写的 '&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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值