gpt4 book ai didi

json - 使用 jackson 的多个 Any-Setters?

转载 作者:行者123 更新时间:2023-12-05 06:45:41 27 4
gpt4 key购买 nike

我有一个动态字段,其中的键是未知的,值可以是字符串或对象。此外,字段本身可以是一个映射或只是一个值。我如何指示 Jackson 根据其值类型序列化/反序列化该字段?我还想保存我键入的对象以在我的代码中使用,而不仅仅是使用 Map<String, Object> 的映射.

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

该字段应接受的不同 JSON:

{
"versions": {
"1.0": { ... MyVersionObject fields},
"2.0": { ... MyVersionObject fields},
"3.0": { ... MyVersionObject fields},
}
}

或者

{
"versions": {
"3.0": "latest"
}
}

最佳答案

听起来输入太不规则了,你不能真正动态地定义它。所以将值的类型保留为 Object;这将为您提供 StringMap。从那开始,改变自己;手动或使用 ObjectMapper.convertValue() 方法。

关于json - 使用 jackson 的多个 Any-Setters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22501844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com