2015-03-04 3 views
0

Я десериализую объект json, который содержит вложенный объект json.Jackson - Сохранить вложенный json объект как JSONObject

{ 
    "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, настройки всегда возвращают «{}». Как я могу это сделать с Джексоном?

UPDATE:

Вот код, который разбирает Автомобиль:

ObjectMapper objectMapper = new ObjectMapper(); 
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 
Car car = objectMapper.readValue(jsonObject.toString(), Car.class); 

Автомобиль может быть вложенным объектом внутри что-то еще, так что это не всегда будет вызываться. Если бы я всегда мог это назвать, у меня уже был бы доступ к объекту json и он мог бы просто установить объект Settings в Car вручную здесь.

+0

содержит некоторый код о том, как вы разбираете эти значения? – andrew

ответ

0

Изменение JSONObject для JsonObject, похоже, устранило проблему.

+0

Как вы это решили? Такая же ошибка, даже если я использовал 'JsonObject'. Разве мы не можем использовать 'JSONObject'? –

Смежные вопросы