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"
}
}