java request含嵌套_Java如何接收前端传来的多层嵌套的复杂json串

想看问题直接解决方式,直接拉到博文底部.

Spring的controller在接收前端传参的时候如果参数使用@RequestBody标注的时候

@RequestBody

则会把前端参数转为JSON的形式,当然内部是怎么实现的像我这种菜鸡目前肯定是不懂的.

但是有的时候会遇到一种情况,比如说JSON嵌套的时候之前我想的是DTO中包含一个String类型的参数,因为Json不就相当于一个字符串嘛

整理了一下,前端传来的参数这样子

{

"Code": "001",

"state": 0,

"content": "{

"name": "小明",

"age": 18

}"

}

但是实际上面的JSON是一个错误的json,正常传参的时候根本就不能把Json写成下面的格式

{

"Code": "001",

"state": 0,

"content": {

"name": "小明",

"age": 18

}

}

正常的json格式应该是上面这个样子的,但是这个时候我就比较迷惑了,既然不能接受字符串形式,这里的参数该怎么弄呢?

根据业务逻辑,这里面可以在DTO,封装一个需要的实体类,比如说可以放置一个User的参数

但是有的时候,我们会发现我们是根本不知道里面实体类的代码的,甚至说这个实体类里面还会嵌套着更多的别的实体类

所以我选择采用Object当参数

/**

* 信息json串

*/

private Object content;

之后呢,在保存数据的时候可以通过下面的代码,将Json转为String存入数据库

Vo vo= new Vo();

JSONObject jsonObject = JSONObject.fromObject(applyRecordDto.getContent());

String s = jsonObject.toString();

vo.setContent(s);

大功告成,大体上解决方法就是上面的凉行代码,当然你也可以选择别的方式,毕竟能解决问题的方式都好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值