iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java利用Jackson轻松处理JSON序列化与反序列化
  • 619
分享到

Java利用Jackson轻松处理JSON序列化与反序列化

Python 官方文档:入门教程 => 点击学习

摘要

目录1. @JSONProperty2. @jsonFORMat3. @JsonIgnore4. @JsonIgnoreProperties5. @JsonInclude6. @Js

1. @JsonProperty

@JsonProperty 注解用于自定义 JSON 属性名称,以及在序列化和反序列化过程中控制属性的包含。通过使用这个注解,您可以确保 JSON 数据与 Java 对象之间正确映射。

public class User {
    @JsonProperty("first_name")
    private String firstName;
    // ...
}

2. @JsonFormat

@JsonFormat 注解用于指定日期、时间和数字的格式。这使得您可以自定义如何在 JSON 中表示这些值。

public class User {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate birthDate;
    // ...
}

3. @JsonIgnore

@JsonIgnore 注解用于在序列化和反序列化过程中忽略某个属性。这在处理敏感数据或不需要序列化的字段时非常有用。

public class User {
    @JsonIgnore
    private String passWord;
    // ...
}

4. @JsonIgnoreProperties

@JsonIgnoreProperties 注解用于在类级别忽略一个或多个属性。这对于在处理来自外部系统的 JSON 数据时忽略未知属性很有用。

@JsonIgnoreProperties({"age", "address"})
public class User {
    // ...
}

5. @JsonInclude

@JsonInclude 注解用于指定仅在某些条件下才包含属性。例如,您可以要求仅在属性具有非空值时才包含它。

@JsonInclude(JsonInclude.Include.NON_NULL)
public class User {
    private String middleName;
    // ...
}

6. @JsonTypeInfo 和 @JsonSubTypes

@JsonTypeInfo@JsonSubTypes 注解用于处理多态类型。这些注解使得在序列化和反序列化时能够正确处理继承关系和类型信息。

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
    @JsonSubTypes.Type(value = Manager.class, name = "manager"),
    @JsonSubTypes.Type(value = Employee.class, name = "employee")
})
public abstract class Person {
    // ...
}

7. @JsonView

@JsonView 注解用于根据视图定义序列化时包含的属性。这允许您根据不同的上下文返回不同的 JSON 结构。

public class User {
    @JsonView(Views.Public.class)
    private String firstName;
    @JsonView(Views.Internal.class)
    private String ssn;
    // ...
}

8. @JsonNaming

@JsonNaming 注解用于自定义属性名称的命名策略。例如,您可以将所有属性名称自动转换为蛇形命名法。

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class User {
    private String firstName;
    private String lastName;
    // ...
}

9. @JsonSerialize 和 @JsonDeserialize

@JsonSerialize@JsonDeserialize 注解用于指定自定义的序列化和反序列化器。这在处理复杂的数据类型或需要定制序列化逻辑的情况下非常有用。

public class User {
    @JsonSerialize(using = CustomDateSerializer.class)
    @JsonDeserialize(using = CustomDateDeserializer.class)
    private LocalDate birthDate;
    // ...
}

10. @JsonAnyGetter 和 @JsonAnySetter

@JsonAnyGetter@JsonAnySetter 注解用于处理动态属性。这些注解允许您在序列化和反序列化过程中处理未知或动态生成的属性。

public class User {
    private Map<String, Object> properties;

    @JsonAnyGetter
    public Map<String, Object> getProperties() {
        return properties;
    }

    @JsonAnySetter
    public void setProperty(String key, Object value) {
        properties.put(key, value);
    }
    // ...
}

11. @JsonIdentityInfo

@JsonIdentityInfo 注解用于处理循环引用和重复引用的问题。它可以确保在序列化和反序列化过程中正确处理对象间的关系。

@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
public class User {
    private int id;
    private List<User> friends;
    // ...
}

总结

Jackson 提供了丰富的注解来处理各种 JSON 序列化和反序列化需求。通过了解这些注解及其用途,您将能够更高效地处理 JSON 数据。请记住,根据您的需求和具体场景选择合适的注解非常重要。希望本文能帮助您更好地理解和使用 Jackson 注解。

到此这篇关于Java利用Jackson轻松处理JSON序列化与反序列化的文章就介绍到这了,更多相关Java Jackson处理JSON内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java利用Jackson轻松处理JSON序列化与反序列化

本文链接: https://www.lsjlt.com/news/212718.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java利用Jackson轻松处理JSON序列化与反序列化
    目录1. @JsonProperty2. @JsonFormat3. @JsonIgnore4. @JsonIgnoreProperties5. @JsonInclude6. @Js...
    99+
    2023-05-19
    Java Jackson处理JSON序列化 Java Jackson处理JSON反序列化 Java Jackson处理JSON Java Jackson JSON
  • Java序列化与反序列化
    目录Java 序列化与反序列化序列化APIObjectOutputStreamObjectInputStreamserialVersionUIDTransient (瞬态变量)实例理...
    99+
    2023-05-14
    Java序列化 Java反序列化
  • 协议,序列化,反序列化,Json
    文章目录 协议序列化和反序列化网络计算器protocol.hppServer.hppServer.ccClient.hppClient.cclog.txt通过结果再次理解通信过程 Json...
    99+
    2023-09-01
    json 网络 服务器
  • 序列化与反序列化
    序列化(pickling)   把变量从内存中变成可存储或传输的过程 反序列化(unpickling)   把变量内容从序列化的对象重新读到内存里的过程 序列化&反序列化的意义  在程序运行过程中,对象可在内存中被自由的修改  一...
    99+
    2023-01-31
    序列 化与 序列化
  • 深入理解Java序列化与反序列化
    目录一、前言1.1 String1.2 Integer二、案例2.1 编写大象类2.2 大象测试类三、运行结果一、前言 序列化:将对象转换为二进制序列在网络中传输或保存到磁盘 反序列...
    99+
    2024-04-02
  • JavaScript中怎么用JSON来序列化与反序列化
    小编给大家分享一下JavaScript中怎么用JSON来序列化与反序列化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用JSON...
    99+
    2024-04-02
  • C#对JSON与对象的序列化与反序列化
    一、利用Web服务中的JavaScriptSerializer 类 System.Web.Script.Serialization空间,位于System.Web.extensions...
    99+
    2024-04-02
  • Java序列化与反序列化怎么应用
    这篇“Java序列化与反序列化怎么应用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java序列化与反序列化怎么应用”文章吧...
    99+
    2023-07-05
  • [Java反序列化]—Shiro反序列化(一)
    环境配置:  IDEA搭建shiro550复现环境_普通网友的博客-CSDN博客 漏洞原理: Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对remem...
    99+
    2023-09-03
    java 开发语言
  • JSON序列化与反序列化NULL值丢失问题
    做项目一般都会有一些特殊的需求,例如保留json中的null值,但是fastjson都会把null值得属性给过滤掉 json序列化保留null值 com.alibaba.fastjson.JSON.toJSONString(list, ...
    99+
    2023-09-14
    java Powered by 金山文档
  • 协议定制 + Json序列化反序列化
    文章目录 协议定制 + Json序列化反序列化1. 再谈 "协议"1.1 结构化数据1.2 序列化和反序列化 2. 网络版计算器2.1 服务端2.2 协议定制(1) 网络发送和读取的正确...
    99+
    2023-10-03
    网络 linux
  • 【反序列化漏洞-01】序列化与反序列化概述
    为什么要序列化 百度百科上关于序列化的定义是,将对象的状态信息转换为可以存储或传输的形式(字符串)的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区(非关系型键值对形式的数据库Redis,与数组类似)。以后,可以通过从存储区中...
    99+
    2023-09-06
    web安全 安全 反序列化 序列化 PHP反序列化漏洞 Powered by 金山文档
  • springboot jackson自定义序列化和反序列化实例
    目录jackson自定义序列化和反序列序列化JsonSerializer最后请求http返回对象反序列化JsonDeserializer小结一下springboot 自定义序列化器j...
    99+
    2024-04-02
  • C#使用Json.Net对JSON与对象的序列化与反序列化
    目录一、使用Json.Net1、把DataTable转换成json格式,使用最新Json.Net DLL ,已经内置转换器。2、对Json.Net序列化和反序列化的控制二、空值的处理...
    99+
    2024-04-02
  • Java序列化与反序列化怎么实现
    本篇内容主要讲解“Java序列化与反序列化怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java序列化与反序列化怎么实现”吧!序列化与反序列化概念序列化 (Serialization)是...
    99+
    2023-06-02
  • C#对Json进行序列化和反序列化
    一、Json简介 Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JS的一个子集。 Json采用完全独立于语言的文本格式。这使得J...
    99+
    2024-04-02
  • 【Java 基础篇】Java序列化与反序列化详解
    文章目录 导言一、序列化与反序列化的原理二、序列化与反序列化的使用方法1、序列化对象2、反序列化对象 三、序列化与反序列化的应用场景1、持久化存储2、网络传输3、缓存机制 总结 ...
    99+
    2023-10-08
    java jvm 开发语言
  • Java的序列化与反序列化怎么实现
    本篇内容介绍了“Java的序列化与反序列化怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java对象的序列化Java平台允许我们在内...
    99+
    2023-07-04
  • Java对象的序列化与反序列化详解
    一、序列化和反序列化的概念把对象转换为字节序列的过程称为对象的序列化,把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种途径:Ⅰ . 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中Ⅱ.  在网络上传送对...
    99+
    2023-05-31
    java 序列化 反序列化
  • Java基础之序列化与反序列化详解
    目录1、什么是序列化与反序列化?2、Java如何实现序列化和反序列化?3、如何自定义序列化和反序列化呢?4、writeObject和readObject方法5、serializabl...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作