博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在JSON中遇到的一些坑
阅读量:6280 次
发布时间:2019-06-22

本文共 742 字,大约阅读时间需要 2 分钟。

今天在进行压测的时候,由于需要使用到json进行传参,并且需要在JMeter中加入少量的JSON,由于JSON在java中呈现键值对的形式,并且需要使用到“”来修饰,导致只能使用\进行转义,在发送请求的时候,还需要对相关数据进行RSA加密,很奇怪的事情发生了,编写了三个json,有两个json发送到后台后,是正常的可以进行RSA加签以及验签的,有一个JSON死活都过不去。

发现问题:一段JSON通过加签,正常,发送到服务器后,进行验签操作的时候,出现,验签不通过。

解决问题:

1. 检查公私钥是否正确,由于分析前两个秘钥是正常的,可以排除秘钥不一致的问题

2. 是否由于验证签名方法出现了问题?检查方法后发现没有问题

3. 检查JSON是否出现问题?初步检查没有问题;

JOSN通过转化后出现如下图

"{\"sequenceNo \":\"201806050054"+vars.get("quotaNo")+"\"," +		"\"ts\":\"1318041322348\"}"

4. 再次检查JSON后发现,在sequenceNo 前面有一个空格,没有发现

5. 删除空格后,验证后成功

问题分析:

1. 由于在JSON中存在空格,暂时没有发现导致,为什么会出现这种问题?有以下几个原因:

      接口文档中存在空格;

      由于源文档中存在空格是没有问题的,但是由于在后台处理的时候,将其通过fastjson转换成了Object类,由于转换后又将Object序列化层JSON字符串后,导致空格丢失,再进行验证RSA时候导致验证不通过,导致出现上述问题。

总结:

  1. 谨慎使用JSON字符串进行拼接。

  2. 如果需要转换成JSON字符串,最好采用工具进行转换,防止此次问题的发生

转载地址:http://whnva.baihongyu.com/

你可能感兴趣的文章
将图片转成base64字符串并在JSP页面显示的Java代码
查看>>
js 面试题
查看>>
sqoop数据迁移(基于Hadoop和关系数据库服务器之间传送数据)
查看>>
腾讯云下安装 nodejs + 实现 Nginx 反向代理
查看>>
Javascript 中的 Array 操作
查看>>
java中包容易出现的错误及权限问题
查看>>
AngularJS之初级Route【一】(六)
查看>>
服务器硬件问题整理的一点总结
查看>>
SAP S/4HANA Cloud: Revolutionizing the Next Generation of Cloud ERP
查看>>
Mellanox公司计划利用系统芯片提升存储产品速度
查看>>
白帽子守护网络安全,高薪酬成大学生就业首选!
查看>>
ARM想将芯片装进人类大脑 降低能耗是一大挑战
查看>>
Oracle数据库的备份方法
查看>>
Selenium 自动登录考勤系统
查看>>
关于如何以编程的方式执行TestNG
查看>>
智能照明造福千家万户 家居智能不再是梦
查看>>
物联网如何跳出“看起来很美”?
查看>>
浅谈MySQL 数据库性能优化
查看>>
《UNIX/Linux 系统管理技术手册(第四版)》——1.10 其他的权威文档
查看>>
灵动空间 创享生活
查看>>