jackson-databind 依赖 jackson-core 和 jackson-annotations,所以可以只表现地添加jackson-databind依赖,jackson-core 和 jackson-annotations 也随之添加到 Java 项目工程中maven
默认情况下,jackjson会将日期类型属性序列化成long型值(自1970年1月1日以来的毫秒数)。显然这样格式的数据不符合人类直观查看假设我们有个Person对象
Jackson通过将JSON字段的名称与Java对象中的getter和setter方法进行匹配,将JSON对象的字段映射到Java对象中的属性。6.1 普通JSON字符串反序列化
Jackson删除了getter和setter方法名称的“ get”和“ set”部门,并将其余名称的第一个字符转换为小写。
通过自界说序列化和反序列化可以使其更加灵活多变7.1 自界说序列化
有时候,我们不需要jackjson默认的序列化方式。例如,JSON中使用与Java对象中差异的属性名称,我们先来看看User实体对象的界说如下
或者不需要Java对象中的某个字段,这时我们就需要自界说序列化器
同理,反序列化也可以自界说,具体代码如下① 自界说一个反序列化器
上面给出的两个案例属于入门级操作,我们学会后可以接着进行一些高级操作
@JsonIgnore 用于在序列化或反序列化过程中忽略某个属性① 界说实体类Person
与@JsonIgnore 注解相比,@JsonIgnoreProperties 用于批量指定在序列化或反序列化过程中应忽略的属性列表,特别适用于应对不明确或动态变革的输入 JSON 中可能存在但不应处理的额外字段① 界说实体类Person
希望同时忽略 password 和 socialSecurityNumber 两个敏感属性
@JsonIgnoreType 注解在 Jackson 库中用于指示整个类在序列化或反序列化过程中应当被忽略。这适用于那些由于某种原因(如敏感信息、内部细节等)不需要或不应该被 JSON 化处理的类①界说CreditCardDetails 实体类
Customer 类,它有一个 creditCardDetails 属性引用上述 CreditCardDetails 类型的对象:
@JsonAutoDetect 用于自界说类的属性(包括字段和 getter/setter 方法)在序列化和反序列化过程中的可见性规则。默认情况下,Jackson 只使用 public 的字段和 public 的 getter/setter 方法。通过使用 @JsonAutoDetect,你可以根据需要调整这些规则,以适应差异类的设计和数据模型。① 界说实体类 Employee
用于指定类的属性在序列化和反序列化成 JSON 时所对应的键名①Book 实体类
用于指定日期、时间、日期时间以及其他数值类型在序列化和反序列化为 JSON 时的格式① 创建 Student 类
用于控制对象在序列化过程中包含哪些属性。它可以防止空或特定值的字段被序列化到JSON输出中,从而帮助您精简JSON数据结构,减少不须要的传输量或制止向客户端暴露不须要的信息①界说PersonInclude实体类
用于告诉Jackson,应该通过调用getter方法而不是通过直接字段访问来获取某个字段值①创建PersonGetter实体类
用于标记一个方法,获取除已知属性外的所有其他键值对。这些键值对通常存储在一个 Map 结构中,① 创建CustomData实体类
以便将它们作为一个附加的对象进行序列化。
用于指定类中属性在序列化为 JSON 时的排序规则①创建OrderPerson 实体类
用于标记一个字段或方法返回值,指示Jackson在序列化时应将其原始值视为未经转义的 JSON 字符串,并直接嵌入到输出的 JSON 文档中。纵然所标记的值包含 JSON 特殊字符(如双引号、反斜杠等),也不会对其进行转义① 创建一个包含 @JsonRawValue 注解的类
用于标记一个方法或字段,Jackson在序列化该类实例时,直接使用该方法的返回值或字段的值作为整个对象的 JSON 表示,而非按照类的通例属性进行序列化① 创建JsonValueExample类
于指定类、字段或方法在序列化过程中使用的自界说序列化逻辑① 创建一个包含 @JsonSerialize 注解的类及其自界说序列化器
用于标记一个方法或字段,指示 Jackson 在反序列化过程中应如何设置该属性的值①创建PersonSetter 类
用于处理反序列化过程中碰到的未知或额外的 JSON 键值对。当一个对象的JSON表示中包含无法直接映射到已声明属性的键时,这个注解可以帮助捕获并存储这些额外的数据① 界说带有 @JsonAnySetter 注解的类
用于标记一个构造器、静态工厂方法或实例方法,使其成为反序列化过程中创建对象实例的入口点。这个注解帮助 Jackson 确定如何根据 JSON 数据构建相应的 Java 对象。① 界说带有 @JsonCreator 注解的类
用于在反序列化过程中自动注入依赖项或附加信息到目标对象。通常用于处理那些不能直接从 JSON 数据中获取、但又希望在反序列化完成后立即可用的信息① 界说带有 @JacksonInject 注解的类
用于在反序列化过程中指定自界说的反序列化器来处理某个字段或类的特殊逻辑①自界说反序列化器
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |