【发布时间】:2019-09-05 04:08:20
【问题描述】:
我们如何使 JSON 属性名称动态化。例如
public class Value {
@JsonProperty(value = "value")
private String val;
public void setVal(String val) {
this.val = val;
}
public String getVal() {
return val;
}
}
当序列化这个对象时,它被保存为{"value": "actual_value_saved"},但我想让密钥也像{"new_key": "actual_value_saved"} 一样动态。非常感谢任何帮助。
【问题讨论】:
-
您想只用
"new_key"保存它,还是想有时用"new_key"保存它,有时用"value"保存它?如果是,基于什么理由? -
@Bentaye 是的,基于名称可能会更改的要求。可以是
"value"或"new_key"或"any_random_string" -
@Prasad 您从哪里获得所需的字段名称?你能在你的 Value 对象中计算它吗?
-
@Bentaye 我已经通过使用自定义
JsonSerializer或JsonTypeInfo的解决方案允许我们修改值但不能修改键。我的要求是有一个动态密钥。我想使用这个 POJO 作为一个公共对象来打印类似{"name": "user"} {"phone": "1234567890"}的东西。
标签: java json spring-boot jackson