【Spring Boot丨(11 )】json的集成

这篇具有很好参考价值的文章主要介绍了【Spring Boot丨(11 )】json的集成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Spring Boot丨(11 )】json的集成,# Spring Boot,spring boot,json,java,后端

主页传送门:📀 传送

概述


Spring boot 提供了三种json库的集成:

  • Gson
  • Jackson
  • JSON-B

上述三种库提供了将Java对象转换为JSON字符串以及将JSON字符串转换为Java对象的功能。
其中Jackson 是 Spring Boot 官方的首选推荐和默认库。

Jackson


  Spring Boot 提供了 Jackson的自动配置,并且Jacksonspring-boot-starter-json 的一部分。当 Jackson 在类路径上时,会自动配置 ObjectMapper bean

自定义配置属性:

ObjectMapper具有以下自定义属性:

  • MapperFeature.DEFAULT_VIEW_INCLUSION 被禁用

  • DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES 被禁用

  • SerializationFeature.WRITE_DATES_AS_TIMESTAMPS 被禁用

  Spring Boot 还有一些功能可以更轻松地自定义此行为。使用环境配置ObjectMapper和XmlMapper实例。 Jackson

供了一套广泛的开/关功能,可用于配置其处理的各个方面。这些特征在六个枚举(Jackson中)中进行了描述,这些枚举映射到

环境中的属性如下:

枚举 属性
com.fasterxml.jackson.databind.DeserializationFeature spring.jackson.deserialization.<feature_name> true,false
com.fasterxml.jackson.core.JsonGenerator.Feature spring.jackson.generator.<feature_name> true,false
com.fasterxml.jackson.databind.MapperFeature spring.jackson.mapper.<feature_name> true,false
com.fasterxml.jackson.core.JsonParser.Feature spring.jackson.parser.<feature_name> true,false
com.fasterxml.jackson.databind.SerializationFeature spring.jackson.serialization.<feature_name> true,false
com.fasterxml.jackson.annotation.JsonInclude.Include spring.jackson.default-property-inclusion always, non_null, non_absent, non_default,non_empty

示例:

spring.jackson.date-format= // 序列化日期对象时使用的格式。日期格式字符串或完全限定的日期格式类名。例如,`yyyy-MM-dd HH:MM:ss`
spring.jackson.default-property-inclusion= // 控制序列化过程中包含的属性。使用Jackson的JsonInclude.Include枚举中的一个值配置。
spring.jackson.deserialization.*= // 影响Java对象反序列化方式的Jackson开/关特性。
spring.jackson.generator.*= // 用于Jackson发生器的开关功能。
spring.jackson.joda-date-time-format= // Joda日期时间格式字符串。如果没有配置,则如果使用格式字符串配置“日期格式”时会将其用作回退。
spring.jackson.locale= // 用于格式化的区域设置。
spring.jackson.mapper.*= // Jackson 通用开关功能。
spring.jackson.parser.*= // 解析程序的Jackson开/关功能。
spring.jackson.property-naming-strategy= //Jackson属性命名策略中的一个常数。也可以是PropertyNamingStrategy子类的完全限定类名。
spring.jackson.serialization.*= // 影响Java对象序列化方式的Jackson开/关特性。
spring.jackson.serialization.indent_output=true // 启用漂亮的打印  松散绑定原则,不需要大小写一致
spring.jackson.time-zone= // 设置日期格式时使用的时区。例如,“美国/洛杉矶”或“GMT+10”.
spring.jackson.visibility.*= // 可用于限制自动检测哪些方法(和字段)的Jackson可见性阈值。

Gson


  Spring Boot 提供了 Gson 的自动配置。当 Gson 在 classpath 上时,会自动配置 Gson bean。提供了几个 spring.gson.* 配置属性来自定义配置。为了获得更多控制,可以使用一个或多个 GsonBuilderCustomizer bean。

配置属性:

spring.gson.date-format= # 序列化日期对象时使用的格式.
spring.gson.disable-html-escaping= # 是否禁用HTML字符的转义,如“<”、“>”等。
spring.gson.disable-inner-class-serialization= # 是否在序列化期间排除内部类。
spring.gson.enable-complex-map-key-serialization= # 是否启用复杂映射键(即非基元)的序列化。
spring.gson.exclude-fields-without-expose-annotation= # 是否将所有没有“Expose”注释的字段排除在序列化或反序列化的考虑范围之外
spring.gson.field-naming-policy= # 在序列化和反序列化期间应应用于对象字段的命名策略。
spring.gson.generate-non-executable-json= # 是否通过在输出前添加一些特殊文本来生成不可执行的JSON
spring.gson.lenient= # 对于解析不符合RFC 4627JSON是否宽容。
spring.gson.long-serialization-policy= # 长类型和长类型的序列化策略。
spring.gson.pretty-printing= # 是否输出适合页面进行漂亮打印的序列化JSON。
spring.gson.serialize-nulls= # 是否序列化空字段。

JSON-B


  Spring Boot 提供了 JSON-B 的自动配置。当 JSON-B API 在 classpath 上时,将自动配置 Jsonb bean。首选的 JSON-B 实现是 Apache Johnzon,它提供了依赖关系管理。

配置属性:

JsonFormat:用于格式化输出JSON数据,可以设置日期格式、时间格式、数字格式等。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date date;

JsonField:用于控制JSON字段的名称、顺序和类型转换等。
@JsonField(name = "age_str")
private String age;
@JsonField(order = 2)
private String name;
@JsonField(type = JsonFieldType.Integer)
private String ageStr;

JsonInclude:用于控制哪些属性应该包含在序列化中。
@JsonInclude(Include.NON_NULL)
private Map<String, Object> include;

【Spring Boot丨(11 )】json的集成,# Spring Boot,spring boot,json,java,后端

  如果喜欢的话,欢迎 🤞关注 👍点赞 💬评论 🤝收藏  🙌一起讨论
  你的支持就是我✍️创作的动力!					  💞💞💞

参考资料
Spring Boot json官方文档文章来源地址https://www.toymoban.com/news/detail-604202.html

到了这里,关于【Spring Boot丨(11 )】json的集成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java开发】 Spring 11 :Spring Boot 项目部署至云服务器

    Spring Boot 项目开发结束后的工作便是运维,简单来说需要配置 Web 运行参数和项目部署两大工作,本文将尽可能详细地给大家讲全! 目录 1 定制 Web 容器运行参数 1.1 运行参数介绍 1.2 项目搭建 ① 通过 IDEA Spring Initializr 创建项目 ② 添加 Spring Web 等依赖 ③ 编写 controller 层的

    2023年04月23日
    浏览(60)
  • 解决`java.lang.NoClassDefFoundError`在Nacos和Spring Boot集成中的问题

    🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言

    2024年02月11日
    浏览(47)
  • 【Spring Boot】Spring Boot集成RabbitMQ

    Spring Boot提供了`spring-boot-starter-amqp`组件,只需要简单地配置即可与Spring Boot无缝集成。下面通过示例演示集成RabbitMQ实现消息的接收和发送。 步骤01 配置pom包。 创建Spring Boot项目并在pom.xml文件中添加spring-bootstarter-amqp等相关组件依赖: 在上面的示例中,引入Spring Boot自带的

    2024年02月06日
    浏览(50)
  • Java-Spring Boot 集成海康威视明眸门禁 布防|报警|回调|获取事件|查询用户信息

    最近做门禁的集成,突然感觉海康这个东西挺有意思的,于是记录一下。 好了废话不多说,开始上环境、代码 本集成是海康-设备网络集成(以人为中心) 环境:windows 开发工具:IDEA JDK版本:JDK-11.0.12 海康jar包:怎么引入都行(本地引入、maven上传到私服)           

    2024年04月15日
    浏览(133)
  • Spring Boot 整合 Shiro(后端)

    1 Shiro 什么是 Shiro 官网: http://shiro.apache.org/ 是一款主流的 Java 安全框架,不依赖任何容器,可以运行在 Java SE 和 Java EE 项目中,它的主要作用是对访问系统的用户进行身份认证、 授权、会话管理、加密等操作。 Shiro 就是用来解决安全管理的系统化框架。 2 Shiro 核心组件 用

    2024年02月09日
    浏览(51)
  • 【Spring Boot】Spring Boot 集成 RocketMQ 实现简单的消息发送和消费

    本文主要有以下内容: 简单消息的发送 顺序消息的发送 RocketMQTemplate的API介绍 环境搭建: RocketMQ的安装教程:在官网上下载bin文件,解压到本地,并配置环境变量,如下图所示: 在 Spring boot 项目中引入 RocketMQ 依赖: 在application.yml增加相关配置: 在 Spring Boot 中使用RocketM

    2024年02月14日
    浏览(51)
  • Spring Boot进阶(51):Spring Boot项目如何集成 HTML?| 超级详细,建议收藏

            我们都知道,Spring Boot作为一款广泛应用于企业级的开发框架,其通过简化开发过程、提高开发效率赢得了众多开发者的青睐。在实际项目开发中,集成 HTML作为 Web 应用程序中的一个基本需求,也是现在极其常见的场景之一。在此,我将为大家分享一下Spring Boot如何

    2024年02月15日
    浏览(54)
  • Spring Boot进阶(67):高性能缓存!使用Spring Boot轻松集成Memcached。

            Memcached是一款高性能的分布式内存对象缓存系统,主要用于动态Web应用中减轻数据库负载。Spring Boot是一款基于Spring框架的快速开发框架,集成了大量的常用技术和组件,方便开发者快速搭建项目。将两者结合起来,可以提高Web应用的性能,并减少数据库的压力。

    2024年02月07日
    浏览(64)
  • Spring Boot进阶(70):如何在Spring Boot中使用FastJson实现高效的JSON数据处理?

      随着互联网的发展,JSON(JavaScript Object Notation)已成为近年来使用最广泛的数据交换格式之一。为了提高JSON数据的处理效率,目前市面上常用的JSON解析库有Jackson、Gson、FastJson等。本文将介绍如何在Spring Boot中使用FastJson实现高效的JSON数据处理。   那么,具体如何实现

    2024年02月09日
    浏览(49)
  • Spring Boot进阶(84):Spring Boot集成Shiro:安全、简单、快捷 | 超级详细,建议收藏

            随着互联网的快速发展,越来越多的应用程序需要进行用户身份验证和权限控制,保障系统的安全性和稳定性,以此而来Shiro。Shiro是一个易于使用的Java安全框架,其提供了身份验证、授权、加密、会话管理等功能,可以轻松地与Spring框架集成,是企业级应用程序

    2024年02月04日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包