簡體   English   中英

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

[英]How to get @JsonProperty 's value using java and jackson api?

在我的項目中的一個案例中,我遇到了需要獲取 JSONPropoerty 名稱來構建另一個 json object 的案例。

我有一個 pojo class:

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

now in another class I need to create JSON Object using the json property names associated with my Record pojo class's @JsonProperty names.

我想要類似的東西

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 屬性名稱。

Even so, Jackson , has classes like com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector , com.fasterxml.jackson.databind.introspect.AnnotatedField , etc... I would recommend to not use if it is really not required. 他們有非常復雜的API並且僅適用於您需要以某種方式創建的com.fasterxml.jackson.databind.introspect中的對象。

最簡單的解決方案是創建public static final字段並在另一個 class 中使用:

class Records {

    public static final String NEW_VALUE = "NEWVALUE";

    @JsonProperty(NEW_VALUE)
    private String value;
}

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

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

或者,只需使用Reflection從給定字段中讀取注釋。

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM