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如下:
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">
4.0.0
springboot.example
spring-boot-hello
1.0-SNAPSHOT
jar
org.springframework.boot
spring-boot-starter-parent
1.5.8.RELEASE
org.springframework.boot
spring-boot-starter-web
1.5.8.RELEASE
com.alibaba
fastjson
1.2.40
org.springframework.boot
spring-boot-maven-plugin
repackage
啊,具体的搭建过程,还是自己慢慢去找其他的博客吧,我这里就不说了。然后工程的目录结构如下:
工程目录结构
这里需要说明一点的是,Application.java要放在外面,这个外面指的是,controller包的外面,不然扫描不到。当然放里面也行,出问题也是可以解决的。
2、 代码
主要就是一个人类Person,这里面有姓名,性别,住址,以及电话如下所示:
public class Person{
private String name;
private String sex;
private Address address; // 对象
private List 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 getPerson(@RequestBody Person person){
Map param = new HashMap();
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里面去啦
以上,虽然我是个小菜鸟,但是如果大家有什么问题,可以留言,我会尽可能帮助大家。希望大神不吝赐教,谢谢。