gpt4 book ai didi

java - 如何重命名子类的 JSON 属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:15 26 4
gpt4 key购买 nike

这是一个简单的例子:假设我有两个类,MyEntity 和 Person:

public class MyEntity {
long id;
String name;
}

public class Person extends MyEntity {
String lastName;
int age;
// other fields
}

到目前为止没有问题。现在我希望使用 Jackson 注释将它们解析为 JSON。假设我有许多其他扩展 MyEntity 的实体,并且它们都具有 JSON 字段 name 但特别是 name 必须在 中解析为 lastName >人类。有什么办法吗?对我来说合乎逻辑的是这样的注释(我编写了这段代码!!只是为了理解):

@JSONFieldValue(subClass = Person.class, field = "name", JSONName = "lastName")
public class MyEntity{}

你们知道有什么方法可以实现这样的目标吗?

提前致谢!

最佳答案

Jackson 默认使用 setter 方法进行反序列化,并根据 Java beans 约定通过 setter 方法名称推断 JSON 字段名称。

要将名为 name 的 JSON 字段解析为名为 lastName 的 Java 类字段,只需在 Person 中添加此 setter :

void setName(String name) {
lastName = name;
}

或者在Person中注释普通的setter:

@JsonProperty( "name" )
void setLastName(String lastName) {
this.lastName = lastName;
}

关于java - 如何重命名子类的 JSON 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44825472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com