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);
大功告成,大体上解决方法就是上面的凉行代码,当然你也可以选择别的方式,毕竟能解决问题的方式都好
Java如何接收前端传来的多层嵌套的复杂json串的更多相关文章
- java后端接收前端传来的复杂对象(包含List对象集合)
最近在和安卓对接口的时候发现往java后端传数据的时候,后台对象无法接收. 说明:后台对象为 类似结构 ObjectA{ private String a; private String b; pr ...
- java多层嵌套集合的json,如何获取多层集合中所需要的value
就很简单的一个问题折磨了整整一天,好在压抑的心情终于释放了,终于闲下来觉得是不是应该记录一下. 首先这个json串是从外网接口返回的数据,想要了解的朋友们可以复制到json解析器中看一下格式:http ...
- 项目记事【SpringMVC-1】:后台接收前端传来的JSON,并转成对象
背景: 最近项目中使用SpringMVC,需要从前端接收JSON格式的请求,在后端自动转成一个与JSON格式相同的对象. 由于是一个老项目,Spring的版本是3.2.7. 问题1:POST or G ...
- SpringMVC中@RequestBody接收前端传来的多个参数
在使用ajax发送请求时,如果发送的JSON数据是一个类中的不同属性,在Controller方法中使用@RequestBody会直接封装进该类中 例如: 前端部分代码 JavaScript <s ...
- java后台解析前端传来的json
@RequestMapping(value = {"save"}) @ResponseBody public Result save(TBaseInterventionPlan m ...
- java SpringWeb 接收安卓android传来的图片集合及其他信息入库存储
公司是做APP的,进公司一年了还是第一次做安卓的接口 安卓是使用OkGo.post("").addFileParams("key",File); 通过这种方式传 ...
- 【Java_Spring】java解析多层嵌套json字符串
java解析多层嵌套json字符串
- 【SpringBoot】 Java中如何封装Http请求,以及JSON多层嵌套解析
前言 本文中的内容其实严格来说不算springboot里面的特性,属于JAVA基础,只是我在项目中遇到了,特归纳总结一下. HTTP请求封装 目前JAVA对于HTTP封装主要有三种方式: 1. JAV ...
- 多层嵌套的json数据
很多时候我们见到的json数据都是多层嵌套的,就像下面这般: {"name":"桔子桑", "sex":"男", , & ...
随机推荐
- sublime 配置大全
最近玩 python ,一般用的编译器是 pycharm ,功能强大,但是苦于启动速度遂准备换坑,瞄上了 sublime .这里记录一下 sublime 的设置以及坑爹项,需要注意的是我用的是 sub ...
- JS基础_立即执行函数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- IOS 改变UISearchBar的背景色
之前网上提供的方法试了很多种 都不能很好的去掉背景色 ,修改背景色方法如下: searchbar.barStyle = UIBarStyleBlackTranslucent; searchbar. ...
- 很low的四位验证码实现
<html> <head> <meta charset="utf-8"> </head> <body> <inpu ...
- C++ STL 之 deque容器 打分案例(内含sort排序用法)
#include <iostream> #include <vector> #include <time.h> #include <deque> #in ...
- 【ASE高级软件工程】第一次结对作业
问题定义 具体规则见:讲义.大致规则如下: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数 ...
- Spark的Shuffle
0. Shuffle概述 要理解什么是Shuffle,首先介绍大数据与分布式.我们知道大数据的存储是分布式存储,大数据的计算框架是分布式的计算框架.分布式必然存在数据的交互传输,简言之Shuffle就 ...
- (备忘)Java Map 遍历
//最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!! public static void work(Map<String, Student> ...
- K8S搭建过程随笔_系统初始化
组件 Kubernetes 1.14.2 Docker 18.09.6-ce Etcd 3.3.13 Flanneld 0.11.0 基础环境设置 192.168.11.188 k8s-master ...
- HTML5 离线缓存manifest
1.简介W3C官方对manifest的介绍是HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在 ...