gpt4 book ai didi

java - 如何使用java和jackson api获取@JsonProperty的值?

转载 作者:行者123 更新时间:2023-11-30 05:25:35 26 4
gpt4 key购买 nike

在我的项目中的一个案例中,我遇到了需要获取 JSONPropoerty 名称来构建另一个 json 对象的情况。

我有一个 pojo 类:

 public class Records {
@JsonProperty("NEWVALUE")
private String new;
}

现在在另一个类中,我需要使用与 Record pojo 类的 @JsonProperty 名称关联的 json 属性名称来创建 JSON 对象。

我想要类似的东西

Record rec=new Record();
JsonNode tmpNode=new JsonNode();
String key= <somehow get value from rec object i.e. "NEWVALUE">
((ObjectNode) tmpNode).put(key, "abc"));

有没有办法获取与java字段名称关联的json属性名称。

最佳答案

即便如此,Jackson 也有类似 com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospectorcom.fasterxml.jackson.databind.introspect 的类。 AnnotatedField 等...如果确实不需要,我建议不要使用。它们具有非常复杂的 API,并且仅适用于您需要以某种方式创建的 com.fasterxml.jackson.databind.introspect 中的对象。

最简单的解决方案是创建 public static final 字段并在另一个类中使用:

class Records {

public static final String NEW_VALUE = "NEWVALUE";

@JsonProperty(NEW_VALUE)
private String value;
}

您可以按如下方式使用它:

((ObjectNode) tmpNode).put(Records.NEW_VALUE, "abc"));

或者,只需使用 Reflection 从给定字段读取注释。

另请参阅:

关于java - 如何使用java和jackson api获取@JsonProperty的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58695426/

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