Spring boot接受json赋值给java对象

新建

模板

小书匠

前言

写这个东西,一方面是我自己在做项目的时候,对json的使用还不是十分的熟悉,对spring boot的使用也不是很熟悉,但是呢,活总是要干的吧。自己就慢慢的摸索,摸出来了。记录一下。自己最近也在看《Spring 实战》,希望早日看完,系统的学习一下spring的知识点

环境

  • IDEA
  • JDK 1.8
  • Spring boot 1.5.8

JSON简单介绍

之前看了许多的json的教程,但是呢总是觉得看会了,自己却还是不会用。现在我好像有点理解了这个东西,用我自己的话说:Json是一种数据格式,可以用来表示简单数据以及复杂数据
使用Json可以表示以下几种“东西”:

  1. 简单数据
  2. "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>

啊,具体的搭建过程,还是自己慢慢去找其他的博客吧,我这里就不说了。然后工程的目录结构如下:

spring boot接收rabbit mq springboot接受对象_spring


工程目录结构

这里需要说明一点的是,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

3、 使用postman测试
看,按照格式输入数据以后,点击send,数据就出来了。去看person,已经由JSON对象变成JAVA对象啦。就可以使用person中的数据做一些想做的事情了。

spring boot接收rabbit mq springboot接受对象_spring_02


测试结果

总结

我写这个主要是为了自己能够记住这些东西,输出才是最好的记忆方式,面对的主要还是初学者,各位大佬就不要见笑了。所以重点是什么呢?

  • 在JSON中

{}

  • 括起来的是对象,

[]

  • 使用

@RequestBody

以上,虽然我是个小菜鸟,但是如果大家有什么问题,可以留言,我会尽可能帮助大家。希望大神不吝赐教,谢谢。