请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 658|回复: 0

Spring Boot2.0连载(31)-- Spring Boot处理JSON数据一

[复制链接]
发表于 2018-5-17 21:52:13 | 显示全部楼层 |阅读模式
更多Spring Boot2.0的知识敬请期待疯狂软件著作《Spring Boot企业应用实战》上市

在实际项目开发中,几乎所有的项目都要用到JSON,本小节我们深入讲解一下JSON在Spring Boot中的使用。
Spring Boo内置了JSON解析功能,默认使用Jackson来自动完成(开发中也可以把Jackson换成是阿里的Fastjson或者其他JSON解析器),当Controller返回的是一个Java对象或者是List集合的时,Spring Boo是自动将其转换成JSON数据,使用起来非常的简单。

测试将返回的Java对象转换成JSON。
index.html:
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org">
  3. <head>
  4. <meta charset="UTF-8"></meta>
  5. <title>Spring Boot自动转换JSON数据</title>
  6. <link rel="stylesheet" th:href="@{css/bootstrap.min.css}" />
  7. <link rel="stylesheet" th:href="@{css/bootstrap-theme.min.css}"/>
  8. <script type="text/javascript" th:src="@{js/jQuery-1.11.0.min.js}"></script>
  9. <script type="text/javascript" th:src="@{js/bootstrap.min.js}"></script>
  10. <script type="text/javascript">
  11. $(document).ready(function(){
  12.     findBook();
  13. });
  14. function findBook(){
  15.     $.ajax("/findBook",// 发送请求的URL字符串。
  16.             {
  17.             dataType : "json", // 预期服务器返回的数据类型。
  18.                type : "post", //  请求方式 POST或GET
  19.            contentType:"application/json", //  发送信息至服务器时的内容编码类型
  20.            // 发送到服务器的数据。
  21.            data:JSON.stringify({id : 1, name : "Spring MVC企业应用实战"}),
  22.            async:  true , // 默认设置下,所有请求均为异步请求。如果设置为false,则发送同步请求
  23.            // 请求成功后的回调函数。
  24.            success :function(data){
  25.                console.log(data);
  26. $("#image").attr("src","images/"+data.image+"");
  27.               $("#name").html(data.name);
  28.               $("#author").html(data.author);
  29.               $("#price").html(data.price);
  30.               $("#remark").html(data.remark);
  31.            },
  32.            // 请求出错时调用的函数
  33.            error:function(){
  34.                alert("数据发送失败");
  35.            }
  36.     });
  37. }
  38. </script>
  39. </head>
  40. <body>
  41. <div class="panel panel-primary">
  42.     <div class="panel-heading">
  43.         <h3 class="panel-title">Spring Boot中Java对象转换JSON</h3>
  44.     </div>
  45. </div>
  46. <div class="container">
  47.     <div class="row">
  48.         <div class="col-md-4">
  49.               <p>封面:<img id="image" src="images/java.jpg"/></p>
  50.             <p>书名:<span id="name"></span>
  51.             <p>作者:<span id="author"></span>
  52.             <p>价格:<span id="price"></span>
  53.             <p>简介:<span id="remark"></span>
  54.         </div>
  55.     </div>
  56. </div>
  57. </body>
  58. </html>
复制代码



Index.html页面使用jQuery发送JSON数据,页面载入时调用findBook函数。findBook函数发送异步请求到“/findBook”,注意加粗的代码contentType:"application/json",表示发送的内容编码格式为json类型;data:JSON.stringify({id : 1, name : "Spring MVC企业应用实战"}),表示发送一个JSON数据;请求成功将返回一个JSON数据,接到返回的数据后将数据设置到页面的<span>当中。

BookControlle.java:


  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import org.fkit.jsontest.domain.Book;
  4. import org.springframework.web.bind.annotation.RequestBody;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RestController;

  7. @RestController
  8. public class BookController {
  9.    
  10.     /**
  11.      * Spring Boot默认使用jackson框架解析JSON
  12.      * */
  13.     @RequestMapping("/findBook ")
  14.     public Book findBook (@RequestBody Book book){
  15.         // 观察页面传入的JSON数据是否封装到Book对象
  16.         System.out.println(book);
  17.         // 设置book其他信息
  18.         book.setAuthor("肖文吉");
  19.         book.setImage("SpringMyBatis.jpg");
  20.         book.setPrice(58.0);
  21.         book.setRemark("媲美于SSH组合的轻量级Java EE应用开发方式");
  22.         return book;
  23.     }
  24. }
复制代码

findBook方法中的第一个参数@RequestBody Book book表示,使用@RequestBody注解获取页面传递的JSON数据后,将JSON数据设置到对应的Book对象的属性当中。前台jsp页面的JSON数据中传递了id和name,为了测试接收JSON数据,使用System.out.println(book);代码将接收到的JSON数据的Book对象打印在控制台上。为了测试传递JSON数据到html页面,方法中还给Book对象的author、image、price和Remark属性分别设置了值,最后将Book对象返回。此时Spring Boot会自动将返回的Book对象转换成JSON数据。


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2020-2-22 03:11 , Processed in 0.212602 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表