让我们假设您有以下JSON:
{
"prop0": "value0",
"level1" : {
"prop1": "value1"
"prop2": "value2"
},
....
}
它能变成简单的Java对象吗?
class Pojo {
private String prop0;
private String prop1;
private String prop2;
}
我不想创建一个中间类来包装"level1"。
我想到的是用这种方式绘制我的班级地图:
class Pojo {
private String prop0;
@JsonProperty("level1.prop1")
private String prop1;
@JsonProperty("level1.prop2")
private String prop2;
}
但不幸的是,它不起作用。相反的问题——将复杂的Java对象转换为普通的JSON——可以使用@JsonUnwrapped
注释简单地解决。
你能为我的问题提出可行的解决方案吗?
您需要编写一个自定义的反序列化程序,或者添加一个可以转换结构的setter。对于后者,你可以做一些类似的事情
...
public void setLevel1(Map<String,String> values) { // or JsonNode
prop1 = values.get("prop1");
// and so forth; if names are regular, can use looping
}