千家信息网

怎么使用Spring Boot处理JSON数据

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"怎么使用Spring Boot处理JSON数据",在日常操作中,相信很多人在怎么使用Spring Boot处理JSON数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2025年02月01日怎么使用Spring Boot处理JSON数据

这篇文章主要介绍"怎么使用Spring Boot处理JSON数据",在日常操作中,相信很多人在怎么使用Spring Boot处理JSON数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用Spring Boot处理JSON数据"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Spring Boot 处理 JSON 数据

JSON 是目前主流的前后端数据传输方式,当 Controller 中返回的是一个 Java 对象或 List 集合时,Spring Boot 将自动把它转换成 JSON 数据。

Spring Boot 中内置了 JSON 解析功能,当你在项目中,添加了 spring-boot-starter-web 模块之后,即可看到默认包含 Jackson 解析器,也可以换成 Fastjson 等其他解析器。

1. 编辑 Book 类

 {     Integer id;     String name;     String author;         Float price;    (pattern = )     Date bookPublicationDate;    }

2. 编辑 BookController

返回数据的时候,需要使用 @ResponseBody 注解。如果经常使用 @Controller 和 @ResponseBody 注解,则可以使用 @RestController 组合注解来替代。

 {    ()    {        Book book =  Book();        book.setId();        book.setName();        book.setAuthor();        book.setPrice();        book.setBookPublicationDate( Date());         book;    }}

运行之后,直接地址栏中访问 http://localhost:8080/book,即可看到返回的 JSON 数据。


3. 转换集合数据

添加 getBooks() 方法,创建一个 List 集合,存放三本书。具体源码如下:

(){    List bookList =  ArrayList<>();    Book book1 =  Book();    book1.setId();    book1.setName();    book1.setAuthor();    book1.setPrice();    book1.setBookPublicationDate( Date());    Book book2 =  Book();    book2.setId();    book2.setName();    book2.setAuthor();    book2.setPrice();    book2.setBookPublicationDate( Date());    Book book3 =  Book();    book3.setId();    book3.setName();    book3.setAuthor();    book3.setPrice();    book3.setBookPublicationDate( Date());    bookList.add(book1);    bookList.add(book2);    bookList.add(book3);     bookList;}

运行之后,直接地址栏中访问 http://localhost:8080/getBooks,即可看到 getBooks() 方法创建多个 Book 对象封装在 List 集合中并将 JSON 数据返回到客户端。


4. 更换转换器

1)使用 Gson

Gson 是 Google 的开源 JSON 解析器,添加依赖的时候先要去除默认的 jackson,具体如下:

    org.springframework.boot    spring-boot-starter-web                        com.fasterxml.jackson.core            jackson-databind                com.google.code.gson    gson

在 Gson 转换时,如果需要格式化日期数据,则需要自定义 HttpMessageConverter,接着提供一个 GsonHttpMessageConverter 即可,具体如下:

 {        {        GsonHttpMessageConverter converter =  GsonHttpMessageConverter();        GsonBuilder builder =  GsonBuilder();        builder.setDateFormat();        builder.excludeFieldsWithModifiers(Modifier.PROTECTED);        Gson gson = builder.create();        converter.setGson(gson);         converter;    }}

修改 Book 类,具体如下:

 {     Integer id;     String name;     String author;     Float price;     Date bookPublicationDate;    }

运行之后,直接地址栏中访问 http://localhost:8080/getBooks,效果如图:


2)使用 fastjson

fastjson 是阿里巴巴的开源 JSON 解析器,也是目前速度最快的 JSON 解析器,整合之后需要提供相应的 HttpMessageConverter 才能使用,添加依赖,具体如下:

    org.springframework.boot    spring-boot-starter-web                        com.fasterxml.jackson.core            jackson-databind                com.alibaba    fastjson

接着,添加 fastjson 的 HttpMessageConverter,具体如下:

 {        {        FastJsonHttpMessageConverter converter =  FastJsonHttpMessageConverter();        FastJsonConfig config =  FastJsonConfig();        config.setDateFormat();        config.setCharset(Charset.forName());        config.setSerializerFeatures(                SerializerFeature.WriteClassName,                SerializerFeature.WriteMapNullValue,                SerializerFeature.PrettyFormat,                SerializerFeature.WriteNullListAsEmpty,                SerializerFeature.WriteNullStringAsEmpty        );        converter.setFastJsonConfig(config);         converter;    }}

再来 application.properties 中配置一个响应编码,具体如下:

spring.http.encoding.force-response=true

运行之后,直接地址栏中访问 http://localhost:8080/getBooks,效果如图:

到此,关于"怎么使用Spring Boot处理JSON数据"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0