Jackson - 将嵌套的json对象存储为JSONObject

时间:2015-03-04 21:46:38

标签: android json jackson

我正在反序列化一个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。

1 个答案:

答案 0 :(得分:0)

将JSONObject更改为JsonObject似乎解决了这个问题。