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可以表示以下几种“东西”:
- 简单数据
- "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>
啊,具体的搭建过程,还是自己慢慢去找其他的博客吧,我这里就不说了。然后工程的目录结构如下:

这里需要说明一点的是,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 , 来接受前端传输过来的person对象。
3、 使用postman测试
看,按照格式输入数据以后,点击send,数据就出来了。去看person,已经由JSON对象变成JAVA对象啦。就可以使用person中的数据做一些想做的事情了。

总结
我写这个主要是为了自己能够记住这些东西,输出才是最好的记忆方式,面对的主要还是初学者,各位大佬就不要见笑了。所以重点是什么呢?
- 在JSON中
{}括起来的是对象,[]括起来的是数组 - 使用
@RequestBody接受JSON对象,只要属性名字与POJO的一致,那么数据就会神奇的到了POJO里面去啦
以上,虽然我是个小菜鸟,但是如果大家有什么问题,可以留言,我会尽可能帮助大家。希望大神不吝赐教,谢谢。
Spring boot接受json赋值给java对象的更多相关文章
- Spring Boot返回json数据及完美使用FastJson解析Json数据
Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...
- Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题【转】
Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题 http://blog.didispace.com/Spring-Boot-And-Feign- ...
- spring boot 规范json返回值
spring boot 规范json返回值 spring boot 接口返回配置 @ResponseBody ,则返回自定义的对象,解析成json. 但是,部分字段能友好的展示出来.如 Date,Lo ...
- spring boot: 输出json
spring boot: 输出json 注意:关闭java的Terminate后,在重新启动,否则报错 app.java启动配置 package com.muyang.boot1; import o ...
- (24)Spring Boot环境变量读取和属性对象的绑定【从零开始学Spring Boot】
凡是被Spring管理的类,实现接口 EnvironmentAware 重写方法 setEnvironment 可以在工程启动时,获取到系统环境变量和application配置文件中的变量. com. ...
- JSON字符串与java对象的转换
所需的jar包: 1.commons-lang.jar 2.commons-beanutils.jar 3.commons-collections.jar 4.commons-logging.jar ...
- JSON 字符串 与 java 对象的转换
jsonLib 经典文章:http://json-lib.sourceforge.net/xref-test/net/sf/json/TestJSONObject.html // 引入相应的包 //j ...
- 利用JAVA反射机制将JSON数据转换成JAVA对象
net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大, 这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用, 有些数据类型需要进行转 ...
- Spring Boot 环境变量读取 和 属性对象的绑定
网上看到的一些方法,结合我看到的 和我们现在使用的.整理成此文: 第一种方法 参见catoop的博客之 Spring Boot 环境变量读取 和 属性对象的绑定(尊重原创) 第二种方法 class不用 ...
随机推荐
- Linux —— awk命令
- 作用: 强大的文本分析工具,对于文本分析来说绝对是一把利器 - 语法: awk '{pattern + action}' {filenames} pattern需要查找的内容 action 查找到 ...
- Codeforces 163C(实数环上的差分计数)
要点 都在注释里了 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
- Net Core IIS Express In
IIS Express In Asp.Net Core IIS Express是一个Mini版的IIS,能够支持所有的Web开发任务,但是这种设计有一些缺陷,例如只能通过localhost:< ...
- Net Core应用,在CentOS上运行
Net Core应用,在CentOS上运行 本文主要介绍下运用docker虚拟技术打包Asp.net core应用. Docker作为一个开源的应用容器引擎,近几年得到广泛的应用,使用Docker我们 ...
- 关于codeblock 为什么不能调试
最近codeblock不能调试了,一开始还以为把断点放在了函数里面,所以不行. 代码短,就自己看了, 有时候实在不行,真的要调试,那怎么办?其实很多时候是你的文件名的问题. 1.project的路径必 ...
- (转)nginx应用总结(1)--基础认识和应用参数优化配置
在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...
- Kendo UI Widgets 概述
UI Widgets 概述 Kendo UI 是基于 jQuery 库开发的,Kendo UI widgets 是以 jQuery 插件形式提供的.这些插件的名称基本上都是以 kendo 作为前缀.比 ...
- python+selenium之处理HTML5的视频播放
from selenium import webdriver from time import sleep driver = webdriver.Firefox() driver.get(" ...
- NVM for Windows下载与安装
下载NVM for Windows https://github.com/coreybutler/nvm-windows/releases nvm-noinstall.zip: 这个是绿色免安装版本, ...
- HDU 4283 You Are the One (区间DP,经典)
题意: 某校举行一场非诚勿扰,给定一个出场序列,表示n个人的屌丝值,如果他是第k个出场的,他的不满意度为(k-1)*diao[i].为了让所有人的屌丝值之和更小,导演设置一个栈,可以将部分人装进栈中, ...