当前位置: 首页 > news >正文

中国网库企业黄页淄博网站制作优化

中国网库企业黄页,淄博网站制作优化,cc域名网站,编程培训班学费是多少本文为官方文档直译版本。原文链接 Spring Boot JSON中文文档 引言Jackson自定义序列化器和反序列化器混入 GsonJSON-B 引言 Spring Boot 提供与三个 JSON 映射库的集成: GsonJacksonJSON-B Jackson 是首选的默认库。 Jackson Spring-boot-starter-json 提供了…

本文为官方文档直译版本。原文链接

Spring Boot JSON中文文档

    • 引言
    • Jackson
      • 自定义序列化器和反序列化器
      • 混入
    • Gson
    • JSON-B

引言

Spring Boot 提供与三个 JSON 映射库的集成:

  • Gson
  • Jackson
  • JSON-B

Jackson 是首选的默认库。

Jackson

Spring-boot-starter-json 提供了 Jackson 的自动配置功能,Jackson 也是 Spring-boot-starter-json 的一部分。当 Jackson 位于类路径上时,会自动配置 ObjectMapper Bean。为自定义 ObjectMapper 的配置提供了多个配置属性。

自定义序列化器和反序列化器

如果使用 Jackson 来序列化和反序列化 JSON 数据,您可能需要编写自己的 JsonSerializerJsonDeserializer 类。自定义序列化器通常通过模块向 Jackson 注册,但 Spring Boot 提供了另一种 @JsonComponent 注解,使直接注册 Spring Beans 变得更容易。
您可以在 JsonSerializerJsonDeserializerKeyDeserializer 实现中直接使用 @JsonComponent 注解。也可以在包含序列化器/解序列化器作为内部类的类中使用,如下例所示:

import java.io.IOException;import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;import org.springframework.boot.jackson.JsonComponent;@JsonComponent
public class MyJsonComponent {public static class Serializer extends JsonSerializer<MyObject> {@Overridepublic void serialize(MyObject value, JsonGenerator jgen, SerializerProvider serializers) throws IOException {jgen.writeStartObject();jgen.writeStringField("name", value.getName());jgen.writeNumberField("age", value.getAge());jgen.writeEndObject();}}public static class Deserializer extends JsonDeserializer<MyObject> {@Overridepublic MyObject deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException {ObjectCodec codec = jsonParser.getCodec();JsonNode tree = codec.readTree(jsonParser);String name = tree.get("name").textValue();int age = tree.get("age").intValue();return new MyObject(name, age);}}}

ApplicationContext 中的所有 @JsonComponent Bean 都会自动向 Jackson 注册。由于 @JsonComponent 是用 @Component 元标注的,因此通常的组件扫描规则也适用。
Spring Boot 还提供了 [JsonObjectSerializer](https://github.com/spring-projects/spring-boot/blob/v3.2.0/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonObjectSerializer.java) 和 JsonObjectDeserializer 基类,在序列化对象时,它们为标准的 Jackson 版本提供了有用的替代方法。有关详细信息,请参见 Javadoc 中的 JsonObjectSerializerJsonObjectDeserializer
上面的示例可以重写为使用 JsonObjectSerializer/JsonObjectDeserializer 如下:

import java.io.IOException;import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.SerializerProvider;import org.springframework.boot.jackson.JsonComponent;
import org.springframework.boot.jackson.JsonObjectDeserializer;
import org.springframework.boot.jackson.JsonObjectSerializer;@JsonComponent
public class MyJsonComponent {public static class Serializer extends JsonObjectSerializer<MyObject> {@Overrideprotected void serializeObject(MyObject value, JsonGenerator jgen, SerializerProvider provider)throws IOException {jgen.writeStringField("name", value.getName());jgen.writeNumberField("age", value.getAge());}}public static class Deserializer extends JsonObjectDeserializer<MyObject> {@Overrideprotected MyObject deserializeObject(JsonParser jsonParser, DeserializationContext context, ObjectCodec codec,JsonNode tree) throws IOException {String name = nullSafeValue(tree.get("name"), String.class);int age = nullSafeValue(tree.get("age"), Integer.class);return new MyObject(name, age);}}}

混入

Jackson 支持混入注解,可用于将附加注解混合到目标类已声明的注解中。Spring Boot 的 Jackson 自动配置会扫描应用程序的包,查找注释为 @JsonMixin 的类,并将它们注册到自动配置的 ObjectMapper 中。注册由 Spring Boot 的 JsonMixinModule 执行。

Gson

为 Gson 提供了自动配置功能。当 Gson 位于类路径上时,Gson Bean 会自动配置。为自定义配置提供了多个 spring.gson.* 配置属性。要进行更多控制,可以使用一个或多个 GsonBuilderCustomizer Bean。

JSON-B

提供 JSON-B 的自动配置。当 JSON-B API 和实现位于类路径上时,Jsonb Bean 将自动配置。首选的 JSON-B 实现是 Eclipse Yasson,它提供了依赖关系管理。

http://www.rdtb.cn/news/2131.html

相关文章:

  • 网站集约化建设意见和建议重庆网站优化公司
  • 那有做网站的公司网站营销
  • 论坛门户网站建设seo中文意思是
  • 什么网站做外贸好黄石seo
  • 期货交易网站开发培训课程开发
  • 网站优化 套站服务营销的七个要素
  • 网站开发建设需要什么腾讯朋友圈广告投放价格
  • 云服务器搭建网站教程企业网络
  • 单页静态网站怎么做什么是seo站内优化
  • 网站多语言建设seo关键词排名优化系统源码
  • 做建材哪个网站平台好镇江市网站
  • 中学校园网网站建设规划书网站设计制作培训
  • 儒枫网网站建设重庆seo论坛
  • 上海易雅达网站建设公司怎么样宁德市
  • 广东省住房城乡建设厅官方网站自动点击器下载
  • 怎么做赌钱网站代理职业培训机构需要什么资质
  • 怎么做传奇私服广告网站整站seo
  • 网站开发 模版绑定顶级域名关键词林俊杰的寓意
  • 大连专业模板网站制作网站建设优化收费
  • 做品牌的人常用的网站百度指数专业版app
  • 百度文库ai助手网页版关键词的优化方法
  • 轻淘客的轻网站怎么做线上线下推广方案
  • 广东一站式网站建设报价百度客服24小时电话人工服务
  • 黄岛网站建设公司免费建站免费网站
  • dw做网站怎么让文字移动云搜索下载
  • 东莞兼职招聘网最新招聘湖南网站优化
  • 室内装修设计网站推荐宁波seo托管公司
  • 一个工厂做网站有什么好处找客源免费用哪个软件好
  • 旅游网站设计方案国际最新十大新闻事件
  • 装门做特卖的网站厦门网站优化