zoukankan      html  css  js  c++  java
  • 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. System.out.println(s); 
    9. param.put("person",person); 
    10. return param; 


    这里使用 @RequestBody , 来接受前端传输过来的person对象。

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

    测试结果

    测试结果

    总结

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

    • 在JSON中 {} 括起来的是对象, [] 括起来的是数组
    • 使用 @RequestBody 接受JSON对象,只要属性名字与POJO的一致,那么数据就会神奇的到了POJO里面去啦

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

  • 相关阅读:
    vuex2 mapActions 报错 `unknown action type: xxxx`
    IE报vuex requires a Promise polyfill in this browser问题解决
    vue路由懒加载
    vue-router各个属性的作用及用法
    JS实现继承的几种方法
    ES6学习笔记--promise对象
    jQuery--data()方法
    原生js实现二级联动下拉列表菜单
    sql server中部分函数功能详解
    js中字符串转换为数值的两种方法的区别
  • 原文地址:https://www.cnblogs.com/junhong1995/p/7801959.html
Copyright © 2011-2022 走看看