我有简单的JSON结构,包含已知字段(例如A和B,键入为String)和一些未知字段(foo和bar,可能是其他字段,或者没有字段,类型未知)。
[
{"A": "Value for A", B: "Value for B", "foo": "foo"},
{"A": "Value for A", B: "Value for B", "bar": 13},
{"A": "Value for A", B: "Value for B", "foo": "foo", "val": true}
]
我需要将此JSON解析为POJO。 Jackson允许将这个JSON解析为JsonNode,但是JsonNode在大量数据上占用了太多内存。 有没有解决办法呢?我需要像这样得到类的实例:
class Simple
{
public String A;
public String B;
public HashMap others;
}
答案 0 :(得分:1)
您可以将POJO与@JsonAnySetter
方法注释一起使用。如果需要,您甚至可以在此方法中执行计算/优化。
public class Simple {
private String A;
private String B;
private Map other = new HashMap<String,Object>();
// "any getter" needed for serialization
@JsonAnyGetter
public Map any() {
return other;
}
// "any setter" needed for deserialization
@JsonAnySetter
public void set(String name, Object value) {
other.put(name, value);
}
// getter and setter for A and B
}