js发送多层嵌套json是格式错误问题

博主在调试一个接口时,后台收到的json格式如下

{
   head:'一些报文头内容'
   body:'{报文体}'
}

具体业务情景是:
由于接口报文有统一的格式,具体的请求报文需要放到json字符串的一个值中(如上示例,整个请求报文需要放到body中);博主再调试接口时碰到需要将一个js对象转换为json字符串,直接使用JSON.stringify(obj)后,对象被转换为字符串,发送到后台后就会出现如上的报文结构,导致解析具体报文体时失败。
后台报错如下:

com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.entities.xxx no String-argument constructor/factory method to deserialize from String value xxxxxxx

注: 如果后台报如上错误,可能是接收的json报文格式错误
** 报错原因:由于body中的json对象值被单引号包围,所以后台解析时把body中的值当作了字符串不能解析为实体对象**
解决方法:,前台在发送报文时,可以先把body中的值转换为json字符串,然后再转换为json对象。
示例如下:

{
	head:'一些报文头内容'
	body:eval('(' + JSON.stringify(obj) + ')')
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值