1
我有一個動態字段,其中密鑰是未知的,值可以是字符串或對象。 此外,該字段本身可以是地圖或只是一個值。 我該如何指導傑克遜根據它的值類型來序列化/反序列化這個字段? 我還想保存我輸入的對象以在我的代碼中使用,而不僅僅使用Map<String, Object>
的地圖。使用jackson的多個Any-Setter?
public class MyPackage {
@JsonProperty("versions")
public Versions versions = new Versions();
@JsonAnySetter
public void add(String key, MyVersionObject value) {
versions.put(key, value);
}
@JsonAnyGetter
public Map<String, MyVersionObject> getMap() {
return versions;
}
}
不同JSONs,這個領域應該接受:
{
"versions": {
"1.0": { ... MyVersionObject fields},
"2.0": { ... MyVersionObject fields},
"3.0": { ... MyVersionObject fields},
}
}
或者
{
"versions": {
"3.0": "latest"
}
}