我有一个看起来像这样的 POJO
class Bean {
private Instant created;
private Instant updated;
private String name;
private int count;
}
输入的 JSON 数据如下所示
{
"time_created": <custom timestamp>,
"time_updated": <custom timestamp>,
// Other data...
"person": {
"name": "John"
// Other data...
},
"stats": {
"button": {
"count": 5
// ...
}
// ...
}
}
我想反序列化 JSON,以便将其展平为 POJO。嵌套类感觉有点矫枉过正,因为我只想要一个特定的属性,并且我不想进行像
bean.getStats().getButton().getCount()
这样的调用,我只想要bean.getCount()
。我已经使用自定义解串器完成了此操作,但它很混乱且脆弱。
有没有办法通过注释来做到这一点?类似的东西
@JsonProperty(name = "count", root = "stats/button")
private int count;
此外,
Instants
需要自定义解串器。我相信我可以用来覆盖它
@JsonDeserialize(using = CustomInstantDeserializer.class)
private Instant created;
@JsonDeserialize(using = CustomInstantDeserializer.class)
private Instant updated;
作为每个字段的注释。
抱歉让您失望了,但这似乎是杰克逊的一个悬而未决的问题: https://github.com/FasterXML/jackson-annotations/issues/42 如果您愿意,您可以对此问题进行投票,他们可能会在将来添加它,但现在您需要使用自定义解串器手动执行此操作。