![](/img/trans.png)
[英]How to use different JSONProperty on Serialize & Deserialize using Jackson API?
[英]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.