天天看點

jackson json 嵌套對象_Jackson-将嵌套的json對象存儲為JSONObject

jackson json 嵌套對象_Jackson-将嵌套的json對象存儲為JSONObject

I am deserializing a json object, which contains a nested json object.

{

"id:" 1,

"name:" "test",

"settings": {

"color": "#ff0000"

}

}

Here is my Car class:

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;

}

}

I would like to keep settings as a JSONObject and parse it later as I need it. I am also wanting to avoid creating a Settings class (because of how I'm caching my models with Sugar ORM). When I try to deserialize this with Jackson, settings is always returning "{}". How can I do this with Jackson?

UPDATE:

Here is the code that parses Car:

ObjectMapper objectMapper = new ObjectMapper();

objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

Car car = objectMapper.readValue(jsonObject.toString(), Car.class);

Car may be a nested object inside of something else, so this won't always be called. If I could always call this, this I would already have access to the json object and could just set the Settings object to the Car manually here.

解決方案

Changing JSONObject to JsonObject seemed to have fixed the problem.