Spring boot接受json赋值给java对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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可以表示以下几种“东西”:

  1. 简单数据
  1. "hello world" 

呐,这就是简单数据。这个不是重点,所以知道就行了。
2. 对象
简单的说,使用 {} 大括号括起来的就是对象了,对象有属性,有值。就像下面这样:


  1. "name":"goodboy"
  2. "sex":"男" 

在json这种数据格式中,只要记住一点: 属性必须用引号("")括起来
3. 数组
还是简单的说,数组就是使用 [] 中括号括起来的东西,就像下面这样


  1. "name":"goodboy"
  2. "sex":"男"
  3. phones:[ 

  4. "operator":"中国移动"
  5. "phoneNum":"159xxxxxxxx" 
  6. },  

  7. "operator":"中国移动"
  8. "phoneNum":"159xxxxxxxx" 



上述就是这个男的有两个电话。

Json的简单介绍就到这里了。记住两点,{} 括起来的是对象, [] 括起来的是数组。就可以了,其他的在实践中就会慢慢的理解了。

Spring boot项目的搭建

1、 搭建步骤
这里使用maven去进行搭建,pom如下:

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" 
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
  5. <modelVersion>4.0.0</modelVersion> 
  6.  
  7. <groupId>springboot.example</groupId> 
  8. <artifactId>spring-boot-hello</artifactId> 
  9. <version>1.0-SNAPSHOT</version> 
  10. <packaging>jar</packaging> 
  11.  
  12. <parent> 
  13. <groupId>org.springframework.boot</groupId> 
  14. <artifactId>spring-boot-starter-parent</artifactId> 
  15. <version>1.5.8.RELEASE</version> 
  16. </parent> 
  17.  
  18. <dependencies> 
  19. <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> 
  20. <dependency> 
  21. <groupId>org.springframework.boot</groupId> 
  22. <artifactId>spring-boot-starter-web</artifactId> 
  23. <version>1.5.8.RELEASE</version> 
  24. </dependency> 
  25. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> 
  26. <dependency> 
  27. <groupId>com.alibaba</groupId> 
  28. <artifactId>fastjson</artifactId> 
  29. <version>1.2.40</version> 
  30. </dependency> 
  31. </dependencies> 
  32.  
  33. <build> 
  34. <plugins> 
  35. <plugin> 
  36. <groupId>org.springframework.boot</groupId> 
  37. <artifactId>spring-boot-maven-plugin</artifactId> 
  38. <executions> 
  39. <execution> 
  40. <goals> 
  41. <goal> 
  42. repackage 
  43. </goal> 
  44. </goals> 
  45. </execution> 
  46. </executions> 
  47. </plugin> 
  48. </plugins> 
  49. </build> 
  50. </project> 

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

工程目录结构

工程目录结构

这里需要说明一点的是,Application.java要放在外面,这个外面指的是,controller包的外面,不然扫描不到。当然放里面也行,出问题也是可以解决的。

2、 代码
主要就是一个人类Person,这里面有姓名,性别,住址,以及电话如下所示:

  1. public class Person
  2. private String name; 
  3. private String sex; 
  4. private Address address; // 对象 
  5. private List<Phone> phones; // 数组 
  6.  
  7. // getter setter  

  8.  
  9. public class Address
  10. private String province; 
  11. private String city; 
  12. private String county; 
  13. private String street; 
  14. // getter setter  

  15. public class Phone
  16. private String operator; // 运营商 
  17. private String phoneNum; 
  18. // getter setter  

  1. //Application.java 
  2.  
  3. @SpringBootApplication 
  4. @RestController 
  5. public class Application
  6.  
  7. @RequestMapping("/"
  8. String hello()
  9. return "hello"

  10.  
  11. public static void main(String[] args)
  12. SpringApplication.run(Application.class,args); 

  13.  

  1. @RestController 
  2. @RequestMapping("/person"
  3. public class PersonController
  4. @RequestMapping("getPerson"
  5. public Map<String,Object> getPerson(@RequestBody Person person)
  6. Map<String,Object> param = new HashMap<String, Object>(); 
  7. String s = person.getPhones().toString(); 
  8. Spring Boot REST 应用程序应该接受并生成 XML 和 JSON

    小马哥-Java 微服务实践 - Spring Boot 系列-01Java 微服务实践 - Spring Boot 系列初体验

    Spring Boot - Json RequestBody,带/不带引号的字符串/枚举

    2. Spring Boot返回json数据

    尝试使用 Spring Boots 的 RestTemplate 使用内容类型 [text/json]

    如何使用 Spring Boot 在 Mongo 中存储原始 JSON