使用动态键将 JSON 响应绑定到 Java 对象
Bind JSON response with dynamic keys to Java object
我有一个来自 MongoDB 的 json 响应,在其当前形式中,我有一个如下所示的 pojo 来绑定这些月份字段值:-
@JsonProperty("Feb-2017")
private Float feb2017;
问题是这些月份名称随时间变化,这些值将不再绑定到 java object.The POJO 又是表示此 json。我无法更改 Db 中的 json 结构,并尝试在 this answer 之后的运行时创建此 pojo,但我无法弄清楚如何跨其他 POJO 引用此对象。
有没有其他方法可以解决这个问题?
谢谢。
在您的 POJO 中,添加一个 class 成员,如下所示:
private Map<String, Object> months = new HashMap<>();
然后创建一个用@JsonAnySetter
注释的方法:
@JsonAnySetter
public void set(String key, Object value) {
months.put(key, value);
}
此方法用作在 JSON 文档中找到的所有无法识别的属性的后备处理程序。
我有一个来自 MongoDB 的 json 响应,在其当前形式中,我有一个如下所示的 pojo 来绑定这些月份字段值:-
@JsonProperty("Feb-2017")
private Float feb2017;
问题是这些月份名称随时间变化,这些值将不再绑定到 java object.The POJO 又是表示此 json。我无法更改 Db 中的 json 结构,并尝试在 this answer 之后的运行时创建此 pojo,但我无法弄清楚如何跨其他 POJO 引用此对象。
有没有其他方法可以解决这个问题?
谢谢。
在您的 POJO 中,添加一个 class 成员,如下所示:
private Map<String, Object> months = new HashMap<>();
然后创建一个用@JsonAnySetter
注释的方法:
@JsonAnySetter
public void set(String key, Object value) {
months.put(key, value);
}
此方法用作在 JSON 文档中找到的所有无法识别的属性的后备处理程序。