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. <groupId>springboot.example</groupId> 

  7. <artifactId>spring-boot-hello</artifactId> 

  8. <version>1.0-SNAPSHOT</version> 

  9. <packaging>jar</packaging> 


  10. <parent> 

  11. <groupId>org.springframework.boot</groupId> 

  12. <artifactId>spring-boot-starter-parent</artifactId> 

  13. <version>1.5.8.RELEASE</version> 

  14. </parent> 


  15. <dependencies> 

  16. <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> 

  17. <dependency> 

  18. <groupId>org.springframework.boot</groupId> 

  19. <artifactId>spring-boot-starter-web</artifactId> 

  20. <version>1.5.8.RELEASE</version> 

  21. </dependency> 

  22. <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> 

  23. <dependency> 

  24. <groupId>com.alibaba</groupId> 

  25. <artifactId>fastjson</artifactId> 

  26. <version>1.2.40</version> 

  27. </dependency> 

  28. </dependencies> 


  29. <build> 

  30. <plugins> 

  31. <plugin> 

  32. <groupId>org.springframework.boot</groupId> 

  33. <artifactId>spring-boot-maven-plugin</artifactId> 

  34. <executions> 

  35. <execution> 

  36. <goals> 

  37. <goal> 

  38. repackage 

  39. </goal> 

  40. </goals> 

  41. </execution> 

  42. </executions> 

  43. </plugin> 

  44. </plugins> 

  45. </build> 

  46. </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. // getter setter  




  7. public class Address { 

  8. private String province; 

  9. private String city; 

  10. private String county; 

  11. private String street; 

  12. // getter setter  



  13. public class Phone { 

  14. private String operator; // 运营商 

  15. private String phoneNum; 

  16. // getter setter  



  1. //Application.java 


  2. @SpringBootApplication 

  3. @RestController 

  4. public class Application { 


  5. @RequestMapping("/") 

  6. String hello(){ 

  7. return "hello"; 




  8. public static void main(String[] args){ 

  9. SpringApplication.run(Application.class,args); 






  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里面去啦

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

Spring boot接受json赋值给java对象的更多相关文章

  1. Spring Boot返回json数据及完美使用FastJson解析Json数据

     Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...

  2. Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题【转】

    Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题 http://blog.didispace.com/Spring-Boot-And-Feign- ...

  3. spring boot 规范json返回值

    spring boot 规范json返回值 spring boot 接口返回配置 @ResponseBody ,则返回自定义的对象,解析成json. 但是,部分字段能友好的展示出来.如 Date,Lo ...

  4. spring boot: 输出json

    spring boot:  输出json 注意:关闭java的Terminate后,在重新启动,否则报错 app.java启动配置 package com.muyang.boot1; import o ...

  5. (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】

    凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. com. ...

  6. JSON字符串与java对象的转换

    所需的jar包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar ...

  7. JSON 字符串 与 java 对象的转换

    jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //j ...

  8. 利用JAVA反射机制将JSON数据转换成JAVA对象

    net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大,  这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用,   有些数据类型需要进行转 ...

  9. Spring Boot 环境变量读取 和 属性对象的绑定

    网上看到的一些方法,结合我看到的 和我们现在使用的.整理成此文: 第一种方法 参见catoop的博客之 Spring Boot 环境变量读取 和 属性对象的绑定(尊重原创) 第二种方法 class不用 ...

随机推荐

  1. CF438D The Child and Sequence 线段树

    给定数列,区间查询和,区间取模,单点修改. n,m小于10^5 ...当区间最值小于模数时,就直接返回就好啦~ #include<cstdio> #include<iostream& ...

  2. Codeforces 1105D(双层广搜)

    要点 题意:可以拐弯,即哈密顿距离 注意不可以直接一个一个搜,这过程中会把下一轮的标记上,导致同一轮的其它点没能正常完成应有的搜索 因此采用双层广搜,把同一轮先都出队列再的一起搜 #include & ...

  3. HDU6442(二项式)

    要点 懒得打公式了,题解 把题目要求的复杂公式化简成熟悉的东西,一是看穿前面加个\(n!\)化为\(C_n^i,i为奇数\):二是将奇数的条件去掉的数学技巧. 形为\({(a + b\sqrt{B}) ...

  4. 【手撸一个ORM】第八步、查询工具类

    一.实体查询 using MyOrm.Commons; using MyOrm.DbParameters; using MyOrm.Expressions; using MyOrm.Mappers; ...

  5. MapReduce项目之气温统计

    在本博文,我们要学习一个挖掘气象数据的程序.气象数据是通过分布在美国全国各地区的很多气象传感器每隔一小时进行收集,这些数据是半结构化数据且是按照记录方式存储的,因此非常适合使用 MapReduce 程 ...

  6. C# Mutex互斥锁

    Mutex 构造函数 (Boolean, String, Boolean) public Mutex ( bool initiallyOwned, string name, out bool crea ...

  7. Python踩坑之旅其二裸用os.system的原罪

    目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4.1 技术关键字 1.5 填坑总结 2. 前坑回顾 2.1 Linux中, 子进程拷贝父进程哪些信息 2.2 Agent常驻进程选择& ...

  8. 2.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  9. PHP 获取JSON json_decode返回NULL解决办法

    在用json_decode对JSON格式的字符串进行解码时竟然为空,页面空白啊,整半天检查这里检查那里,问同事都没用. 今天必应搜索了下,问题解决了,原来是有BOM头输出,大虾的解决办法如下: 1). ...

  10. Cocos2d-x v3.1 初识(一)

    Cocos2d-x v3.1 初识(一) Cocos2d-x从以前苹果平台上的Cocos2d发展而来,版本已经更新到了3.1.1.作为一个跨平台的游戏开发引擎,现在已经被上百个国家在使用,这也是国人的 ...