Spring Boot处理JSON数据

在Spring Boot的Web应用中,内置JSON数据解析功能,默认使用Jackson自动解析,不需要加载Jackson依赖包,当控制器返回一个Java对象或者集合数据时,SpringBoot自动将其转换为Json格式数据,使用起来方便简洁。

SpringBoot处理JSON数据时,需要用到两个重要的JSON转换注解,分别是@RequestBody和@ResponseBody。
@RequestBody:将请求主体的数据绑定到形参上,该注解应用在方法的形参上
@ResponseBody:直接返回Json对象,该注解应用在方法上。

下面用一个实例学习SpringBoot处理Json数据的过程,该实例针对返回List集合做处理。

1-创建Maven项目,并在pom.xml文件中添加相关依赖。

<?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>org.example</groupId><artifactId>Thymeleaf</artifactId><version>1.0-SNAPSHOT</version><parent><!--配置SpringBoot的核心启动器--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version></parent><dependencies><dependency><!--添加starter模块--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies></project>

2-在src/main/java目录下创建包com.model,并在该包中创建实体模型类Person,该模型类包含三个属性,分别为用户名,密码和年龄。

/*** 实体模型类,包含用户名,密码,年龄三个属性*/
public class Person {private String pname ;private String password ;private Integer page ;public String getPname() {return pname;}public void setPname(String pname) {this.pname = pname;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getPage() {return page;}public void setPage(Integer page) {this.page = page;}
}

3-创建视图显示页面,在src/main/resources/templates创建视图页面input.html,在该页面引用jQuery框架,并使用它的ajax方法进行异步请求,同时引入BootStrap框架。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8"><title>Json数据处理</title>
</head>
<link rel = "stylesheet" th:href = "@{css/bootstrap.min.css}"/>
<link rel = "stylesheet" th:href = "@{css/bootstrap-theme.min.css}"/>
<!--引入jQuery-->
<script type = "text/javascript" th:src="@{js/jquery-3.3.1.min.js}"></script>
<script type = "text/javascript">function testJson(){//获取输入的pname为idvar pname = $("#pname").val() ;var password = $("#password").val() ;var page = $("#page").val() ;$.ajax({//发送请求的url字符串url:"testJson",//定义回调相应的数据格式为Json字符串,该属性可以省略dataType:"json",//请求类型type:"post",//定义发送请求的数据格式为Json字符串contentType:"application/json",//data表示发送的数据data:JSON.stringify({pname:pname, password:password, page:page}),//成功响应的结果success:function (data) {if(data != null){//返回一个List<Map<String, Object>>对象for(var i=0; i<data.length; i++){alert(data[i].pname +  data[i].password + data[i].page) ;}}},//请求出错error:function(){alert("数据发送失败") ;}}) ;}
</script>
<body>
<div class = "panel panel-primary"><div class = "panel-heading"><h3 class = "panel-title">处理JSON数据</h3></div>
</div>
<div class = "container"><div><h4>添加用户</h4></div><div class = "row"><div class = "col-md-6 col-sm-6"><form class="form-horizontal" action=""><div class="form-group"><div class="input-group col-md-6"><span class = "input-group-addon"><i class = "glyphicon glyphicon-pencil"></i></span><input class = "form-control" type = "text" id = "pname" th:placeholder="请输入用户名"/></div></div><div class = "form-group"><div class = "input-group col-md-6"><span class = "input-group-addon"><i class = "glyphicon glyphicon-pencil"></i></span><input class="form-control" type="text" id = "password" th:placeholder = "请输入密码"/></div></div><div class = "form-group"><div class = "input-group col-md-6"><span class = "input-group-addon"><i class = "glyphicon glyphicon-pencil"></i></span><input class="form-control" type="text" id = "page" th:placeholder = "请输入年龄"/></div></div><div class = "form-group"><div class = "col-md-6"><div class = "btn-group btn-group-justified"><div class = "btn-group"><button type="button" onclick="testJson()" class = "btn btn-success"><span class =  "glyphicon glyphicon-share"></span>&nbsp;测试</button></div></div></div></div></form></div></div>
</div>
</body>
</html>

4-创建控制器,在src/main/java目录下创建com.controller包,在该包中创建控制器类TestJsonController,在该类中有两个处理方法,一个是界面导航方法input,另一个是接收页面请求并给予响应的方法。

import com.model.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Controller
public class TestJsonController {//进入视图页面@RequestMapping("/input")public String input(){return "input" ;}//接收页面请求的Json数据@RequestMapping("/testJson")@ResponseBodypublic List<Map<String, Object>> testJson(@RequestBody Person user){//打印接收的JSON格式数据System.out.println("pname = " + user.getPname() + " password = " + user.getPassword() + " page = " + user.getPage());List<Map<String, Object>> list = new ArrayList<>() ;Map<String, Object> map = new HashMap<>() ;map.put("pname", "王国栋") ;map.put("password", "123") ;map.put("page", 25) ;Map<String, Object> map1 = new HashMap<>() ;map1.put("pname", "唐乃乔") ;map1.put("password", "456") ;map1.put("page", 25) ;list.add(map) ;list.add(map1) ;return list ;}
}

5-在src/main/java目录下创建com.test包,在该包中创建启动类,运行启动类,然后访问http://localhost:8080/input


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication(scanBasePackages = {"com"})
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args) ;}
}

6-运行结果如下:
视图页面发送的Json数据,通过@RequestBody注解绑定新参获得,在控制台打印

@RespnseBody响应的结果,通过alert()方法响应到视图页面。

Spring Boot处理JSON数据相关推荐

  1. 利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细

    在Spring Boot的Web应用中 内置了JSON数据的解析功能,默认使用Jackson自动完成解析(不需要解析加载Jackson依赖包)当控制器返回一个Java对象或集合数据时 Spring B ...

  2. Spring Boot 返回 JSON 数据,一分钟搞定!

    在 WEB 项目中返回 JSON 数据是常见的交互形式,在 Spring Boot 中这一切都变得十分简单.So easy!!! 你所需具备的基础 什么是 Spring Boot? Spring Bo ...

  3. 从零开始学springboot笔记(二)-Spring boot返回json数据(中文无乱码)

    先创建json实体类,如下: public class Demo {private int age; private String address; private String name; priv ...

  4. spring boot 中json数据处理

    spring boot获取json数据,使用@RequestBody JSONObject jsonParma注解,获取数据用jsonParma.getString方法 String类型转int使用I ...

  5. Spring Boot 返回 XML 数据,一分钟搞定!

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot 返回 XML 数据,前提必须已经搭建了 Spring Boot 项目,所以这一块代码就不贴了,可以点击 ...

  6. Spring Boot 启动载入数据 CommandLineRunner

    Spring Boot 启动载入数据 CommandLineRunner 实际应用中,我们会有在项目服务启动的时候就去载入一些数据或做一些事情这种需求. 为了解决这种问题.Spring Boot 为我 ...

  7. boke练习: spring boot: security post数据时,要么关闭crst,要么添加隐藏域

    spring boot: security post数据时,要么关闭crst,要么添加隐藏域 http.csrf().disable(); 或者: <input name="${_cs ...

  8. Spring Boot + JPA +MySQL 数据操作及示例环境搭建(自动建表)

    JPA 是Java官方提供的数据持久的统一API , 是一个接口标准,并没有具体实现. JPA的实现常见的有: Hibernate TopLink (Eclipse Link) Spring Boot ...

  9. 在Spring Boot中使用数据缓存

    关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 春节就要到了,在回家之前要 ...

最新文章

  1. 从paxos到raft zab,为何raft能够“独领风骚”
  2. 【转载】python3安装scrapy之windows32位爬坑
  3. 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”
  4. ZOJ ACM 1314(JAVA)
  5. jqgrid学习(二)
  6. druid连接池_springboot三步整合阿里数据库连接池druid
  7. sql server中扩展存储过程随笔
  8. 快速入门学习数字图像处理(冈萨雷斯第三版)
  9. Fl Studio20切换中文教程汉化补丁包
  10. SQLHelper类方法介绍及简单使用
  11. python用的编程软件是什么,python编程软件用哪个好
  12. python利用百度翻译器,爬取需要翻译的关键字
  13. Win7系统怎么卸载IE浏览器
  14. 支付宝支付流程 及简单实现
  15. 网页前端大作业主界面(Html+CSS+JS+Axios)
  16. 网狐荣耀子游戏金币存取BUG
  17. Android烟雾监控应用,基于Android的智能家庭监控系统研制
  18. Onedrive for Business迁移方案 | 分享一
  19. hadoop机架是什么_什么是机架?
  20. 有一种难过,叫做你没有使用过网上订货系统!

热门文章

  1. 打造你自己的vim--如何配置vim
  2. 【面试】 瓜子二手车 Java 方向面经
  3. 微信内打开H5问题 错误10003
  4. 09 Android 植物人大战僵尸-生成小太阳
  5. 数据生成工具——datafaker
  6. 前端网站如何做ico图标教程
  7. 大白话5分钟带你走进人工智能-第十四节过拟合解决手段L1和L2正则
  8. cips2016+学习笔记︱NLP中的消岐方法总结(词典、有监督、半监督)
  9. But How Do It Know 存储计算和顺序
  10. 1.4链界观区块链资讯