怎么使用Spring Boot处理JSON数据

技术怎么使用Spring Boot处理JSON数据这篇文章主要介绍“怎么使用Spring Boot处理JSON数据”,在日常操作中,相信很多人在怎么使用Spring Boot处理JSON数据问题上存在疑惑,小编查阅了各式

本文主要介绍“如何使用Spring Boot处理JSON数据”。在日常操作中,相信很多人对于如何使用Spring Boot处理JSON数据都有疑问。边肖查阅了各种资料,整理出简单易用的操作方法,希望能帮你解决如何使用Spring Boot处理JSON数据的疑惑!接下来,请和边肖一起学习!

Spring Boot 处理 JSON 数据

JSON是目前主流的数据传输方式。当从控制器返回一个Java对象或列表集时,Spring Boot将自动将其转换为JSON数据。

JSON解析功能内置于Spring Boot。当您在项目中添加spring-boot-starter-web模块时,您可以看到默认情况下包含Jackson解析器,或者可以使用Fastjson等其他解析器来代替。

1. 编辑 Book 类

{

Integerid

Stringname

Stringauthor

漂浮大米;

(模式=)

DatebookPublicationDate

}

2. 编辑 BookController

,在返回数据时,需要使用@ResponseBody注释。如果经常使用@Controller和@ResponseBody注释,可以使用@RestController来组合注释。

{

()

{

bookbook=Book();

book . setid();

book . setname();

book . setauthor();

book . setprice();

book . setbookpublicationdate(Date());

书;

}

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

怎么使用Spring  Boot处理JSON数据

3. 转换集合数据

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

()

{

ListBookbookList=ArrayList();

bookbook 1=Book();

book 1 . setid();

book 1 . setname();

book 1 . setauthor();

book 1 . SetRice();

book 1 . setbookpublicationdate(Date());

bookbook 2=Book();

book 2 . setid();

sp;  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 数据返回到客户端。

怎么使用Spring Boot处理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,效果如图:

怎么使用Spring Boot处理JSON数据

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数据

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

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/62647.html

(0)

相关推荐

  • 如何理解aix命令中的capture和script

    技术如何理解aix命令中的capture和script今天就跟大家聊聊有关如何理解aix命令中的capture和script,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有

    攻略 2021年11月26日
  • JAVA中Throw和throws的区别有哪些

    技术JAVA中Throw和throws的区别有哪些本篇内容主要讲解“JAVA中Throw和throws的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA中Th

    攻略 2021年11月20日
  • tmp格式文件怎么打开,如何打开和删除tmp格式文件

    技术tmp格式文件怎么打开,如何打开和删除tmp格式文件临时文件产生tmp文件  在系统中c:windowstemp文件夹中,我们经常会发现一些后缀名为tmp的文件,在该文件夹中的这些文件其实都是临时文件tmp格式文件怎

    生活 2021年10月25日
  • Tomcat中如何清理缓存

    技术Tomcat中如何清理缓存这篇文章将为大家详细讲解有关Tomcat中如何清理缓存,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、关于Tomcat“缓存”的介绍 很多时候

    攻略 2021年12月11日
  • 怎么使用JavaScript中的sort

    技术怎么使用JavaScript中的sort本篇内容主要讲解“怎么使用JavaScript中的sort”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用JavaScrip

    攻略 2021年11月20日
  • 如何安装logstash

    技术如何安装logstash这篇文章主要为大家展示了“如何安装logstash”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何安装logstash”这篇文章吧。安装logs

    攻略 2021年11月26日