![](/img/trans.png)
[英]How to ignore @JsonProperty while converting object to map by Jackson
[英]How to ignore Map related braces while converting json to Java object using Jackson
我正在嘗試將JSON轉換為Java對象,但我很難構建Java等效對象。
我的JSON看起來像這樣
{
"point1": {
"x": 1.0,
"y": 2.0
},
"point2": {
"x": 1.0,
"y": 2.0
},
"point3": {
"x": 1.0,
"y": 2.0
},
"customobject1": "cust1",
"customobject2": "cust2"
}
我需要地圖這里點,因為會有點的n個,
public class Test {
public String getCustomobject1() {
return customobject1;
}
public void setCustomobject1(String customobject1) {
this.customobject1 = customobject1;
}
public String getCustomobject2() {
return customobject2;
}
public void setCustomobject2(String customobject2) {
this.customobject2 = customobject2;
}
Map<String, Point> testing = new HashMap<>();
String customobject1;
String customobject2;
public Map<String, Point> getTesting() {
return testing;
}
public void setTesting(Map<String, Point> testing) {
this.testing = testing;
}
}
但是我得到了無法識別的屬性異常,我知道有一個額外的包裝器( {} )會導致這個問題,有些機構可以建議我在反序列化JSON時如何忽略這個映射名稱嗎?
注意:我工作的實際對象有點復雜,結構相似,我在這里只發布一個原型。
如果您事先不知道密鑰,請使用@JsonAnySetter
來映射它們:
標記注釋,可用於定義非靜態,雙參數方法(屬性的第一個參數名稱,要設置的第二個值),用作從JSON內容中找到的所有其他無法識別的屬性的“回退”處理程序。 它與行為中的XmlAnyElement類似; 並且只能用於表示每種類型的單個屬性。
如果使用,則將來自JSON Object值的所有其他未映射的鍵值對添加到屬性(Map或bean類型)。
public class Test {
private Map<String, Point> points = new HashMap<>();
@JsonAnySetter
public void setPoints(String name, Point value) {
points.put(name, value);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.