java - 如何使用 Jackson API 对序列化和反序列化使用不同的 JSONProperty?

标签 java serialization jackson deserialization objectmapper

我有一个 Java 对象“Author”,然后将其重组为“Author”的 Ararylist。作者对象直接以 JSON 格式保存在数据库中,如下所示:

{"author":{"id":1,"recordId":0}}

所以我之前的 Java Field 是:

private Author author = new Author();

新的是:

private List<Author> authorList;

问题是我如何编写代码以使用 authorList 序列化对象,但还需要反序列化旧的“Author”。

我使用 @JsonProperty 读取已保存的 author 数据,但这也保存了名为“Author”的 Arraylist,我需要将其命名为 authorList

@JsonProperty(value="author")
@JsonDeserialize(using = AuthorDeserializer.class)

最佳答案

谷歌搜索我找到了解决方案。 我们可以使用 @JsonAlias 使用最新的 Jackson API (2.9.7) 所以在我的例子中,我想要这个反序列化的别名@JsonAlias(value={"author","authorList"})

JSON Jackson parse different keys into same field

关于java - 如何使用 Jackson API 对序列化和反序列化使用不同的 JSONProperty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52585765/

相关文章:

java - 如何保持固定大小的 ListenableFuture 池?

c# - .net DateTime 序列化反序列化 bug

java - Jackson XML 反序列化问题

java - Gson POJO 映射丢失自定义字段值

java - 如何使用spring jpa native 查询包含序列号来查询结果?

java - Android ImageView 未加载

C# Xml 序列化 : can't (de)serialize an object that comes from another assembly

java - 在 Json Resteasy 上处理集合(多对多)的递归引用

java - JAXB 使 Objectfactory 中的 QName 可访问

java - @JsonIgnoreProperties 不允许通过@RequestBody 设置值?