【发布时间】:2015-03-04 21:46:38
【问题描述】:
我正在反序列化一个 json 对象,其中包含一个嵌套的 json 对象。
{
"id:" 1,
"name:" "test",
"settings": {
"color": "#ff0000"
}
}
这是我的汽车课:
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 并在需要时对其进行解析。我也想避免创建一个设置类(因为我如何使用 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。
【问题讨论】:
-
提供一些关于如何解析这些值的代码?