Spring boot接受json赋值给java对象
Spring boot接受json赋值给java对象
前言
写这个东西,一方面是我自己在做项目的时候,对json的使用还不是十分的熟悉,对spring boot的使用也不是很熟悉,但是呢,活总是要干的吧。自己就慢慢的摸索,摸出来了。记录一下。自己最近也在看《Spring 实战》,希望早日看完,系统的学习一下spring的知识点
环境
- IDEA
- JDK 1.8
- Spring boot 1.5.8
JSON简单介绍
之前看了许多的json的教程,但是呢总是觉得看会了,自己却还是不会用。现在我好像有点理解了这个东西,用我自己的话说:Json是一种数据格式,可以用来表示简单数据以及复杂数据。
使用Json可以表示以下几种“东西”:
- 简单数据
- "hello world"
呐,这就是简单数据。这个不是重点,所以知道就行了。
2. 对象
简单的说,使用 {} 大括号括起来的就是对象了,对象有属性,有值。就像下面这样:
- {
- "name":"goodboy",
- "sex":"男"
- }
在json这种数据格式中,只要记住一点: 属性必须用引号("")括起来
3. 数组
还是简单的说,数组就是使用 [] 中括号括起来的东西,就像下面这样
- {
- "name":"goodboy",
- "sex":"男",
- phones:[
- {
- "operator":"中国移动",
- "phoneNum":"159xxxxxxxx"
- },
- {
- "operator":"中国移动",
- "phoneNum":"159xxxxxxxx"
- }
- ]
- }
上述就是这个男的有两个电话。
Json的简单介绍就到这里了。记住两点,{} 括起来的是对象, [] 括起来的是数组。就可以了,其他的在实践中就会慢慢的理解了。
Spring boot项目的搭建
1、 搭建步骤
这里使用maven去进行搭建,pom如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>springboot.example</groupId>
- <artifactId>spring-boot-hello</artifactId>
- <version>1.0-SNAPSHOT</version>
- <packaging>jar</packaging>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.5.8.RELEASE</version>
- </parent>
- <dependencies>
- <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- <version>1.5.8.RELEASE</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.40</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>
- repackage
- </goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </project>
啊,具体的搭建过程,还是自己慢慢去找其他的博客吧,我这里就不说了。然后工程的目录结构如下:

这里需要说明一点的是,Application.java要放在外面,这个外面指的是,controller包的外面,不然扫描不到。当然放里面也行,出问题也是可以解决的。
2、 代码
主要就是一个人类Person,这里面有姓名,性别,住址,以及电话如下所示:
- public class Person {
- private String name;
- private String sex;
- private Address address; // 对象
- private List<Phone> phones; // 数组
- // getter setter
- }
- public class Address {
- private String province;
- private String city;
- private String county;
- private String street;
- // getter setter
- }
- public class Phone {
- private String operator; // 运营商
- private String phoneNum;
- // getter setter
- }
- //Application.java
- @SpringBootApplication
- @RestController
- public class Application {
- @RequestMapping("/")
- String hello(){
- return "hello";
- }
- public static void main(String[] args){
- SpringApplication.run(Application.class,args);
- }
- }
- @RestController
- @RequestMapping("/person")
- public class PersonController {
- @RequestMapping("getPerson")
- public Map<String,Object> getPerson(@RequestBody Person person){
- Map<String,Object> param = new HashMap<String, Object>();
- String s = person.getPhones().toString();
- System.out.println(s);
- param.put("person",person);
- return param;
- }
- }
这里使用 @RequestBody , 来接受前端传输过来的person对象。
3、 使用postman测试
看,按照格式输入数据以后,点击send,数据就出来了。去看person,已经由JSON对象变成JAVA对象啦。就可以使用person中的数据做一些想做的事情了。

总结
我写这个主要是为了自己能够记住这些东西,输出才是最好的记忆方式,面对的主要还是初学者,各位大佬就不要见笑了。所以重点是什么呢?
- 在JSON中
{}括起来的是对象,[]括起来的是数组 - 使用
@RequestBody接受JSON对象,只要属性名字与POJO的一致,那么数据就会神奇的到了POJO里面去啦
以上,虽然我是个小菜鸟,但是如果大家有什么问题,可以留言,我会尽可能帮助大家。希望大神不吝赐教,谢谢。
Spring boot接受json赋值给java对象的更多相关文章
- Spring Boot返回json数据及完美使用FastJson解析Json数据
Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题【转】
Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题 http://blog.didispace.com/Spring-Boot-And-Feign- ...
- spring boot 规范json返回值
spring boot 规范json返回值 spring boot 接口返回配置 @ResponseBody ,则返回自定义的对象,解析成json. 但是,部分字段能友好的展示出来.如 Date,Lo ...
- spring boot: 输出json
spring boot: 输出json 注意:关闭java的Terminate后,在重新启动,否则报错 app.java启动配置 package com.muyang.boot1; import o ...
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. com. ...
- JSON字符串与java对象的转换
所需的jar包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar ...
- JSON 字符串 与 java 对象的转换
jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //j ...
- 利用JAVA反射机制将JSON数据转换成JAVA对象
net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大, 这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用, 有些数据类型需要进行转 ...
- Spring Boot 环境变量读取 和 属性对象的绑定
网上看到的一些方法,结合我看到的 和我们现在使用的.整理成此文: 第一种方法 参见catoop的博客之 Spring Boot 环境变量读取 和 属性对象的绑定(尊重原创) 第二种方法 class不用 ...
随机推荐
- 微信小程序 笔记
1.Input 输入控件 <input type='digit' placeholder='0.00'></input> 如果要使用单纯的数字控件,使那么可以将type设置为d ...
- ES6新特性使用小结(六)
十三.promise 异步编程 ①.使用 promise 模拟异步操作 { //ES5 中的 callback 解决 异步操作问题 let ajax = function (callback) { c ...
- B - Median Pyramid Easy 构造题
B - Median Pyramid Easy Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statemen ...
- springboot使用schedule定时任务
定时任务一般会存在中大型企业级项目中,为了减少服务器.数据库的压力往往会采用时间段性的去完成某些业务逻辑.比较常见的就是金融服务系统推送回调,一般支付系统订单在没有收到成功的回调返回内容时会持续性的回 ...
- To the world you may be one person, but to one person you may be the world.
To the world you may be one person, but to one person you may be the world.对于世界而言,你是一个人:但对于某人而言,你是他的 ...
- 使用OpenSSH远程管理Linux服务器
一.使用OpenSSH远程管理Linux服务器 sshd是OpenSSH的服务器端守护进程,与之对应的Windows下客户端软件有SecureCRT/Xshell/PuTTY等. OpenSSH一般为 ...
- copyout函数
copyout Kernel Service Purpose Copies data between user and kernel memory. Syntax #include <sys ...
- C# 向服务器上传文件(客服端winform、服务端web)
转载 首先写客服端,winform模拟一个post提交: /// <summary> /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// </summa ...
- 一个SQL server的事务存储
-- ============================================= -- Author: Evan -- Create date: 2018年6月14日 16点27分 - ...
- ztree的CheckBox不显示问题解决办法
问题: 在使用ztree插件时需要设置 zTree 的节点上是否显示 checkbox / radio,但设置后不显示复选框/单选框,如下图所示 设置方法: var setting = { check ...