我正在反序列化一个json对象,它包含一个嵌套的json对象。
{
"id:" 1,
"name:" "test",
"settings": {
"color": "#ff0000"
}
}
这是我的Car类:
public class Car {
private long id;
private String name;
private JSONObject settings;
// id getter/setter...
// name gett/setter...
public void setSettings(JSONObject settings) {
this.settings = settings;
}
public JSONObject getSettings() {
return settings;
}
}
我想将设置保存为JSONObject,并在以后根据需要进行解析。我也想避免创建一个Settings类(因为我是如何用Sugar ORM缓存我的模型的)。当我尝试用Jackson反序列化时,设置总是返回" {}"。我怎么能和杰克逊一起做这个?
更新:
以下是解析Car的代码:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Car car = objectMapper.readValue(jsonObject.toString(), Car.class);
Car可能是其他内容中的嵌套对象,因此不会总是被调用。如果我总是可以调用它,我可以访问json对象,并且可以在这里手动将Settings对象设置为Car。
答案 0 :(得分:0)
将JSONObject更改为JsonObject似乎解决了这个问题。