Jackson ObjectMapper с произвольными ключами JSON

Я использую Jackson 1.9.5 в проекте Android для анализа файлов JSON.

До сих пор у меня не было никаких проблем, и я могу нормально анализировать файлы, используя следующий код:

AssetManager mgr = getAssets();
ObjectMapper mapper = new ObjectMapper();

try {
    InputStream ifp = mgr.open("detail_schema.json");
    schema = mapper.readValue(ifp, DetailSchema.class);
} catch (IOException e) {
    e.printStackTrace();
}

Где класс DetailSchema состоит из смеси примитивных типов и классов. Теперь я столкнулся с проблемой, когда я хочу проанализировать некоторый JSON, например следующий:

"fields": {
    "Suburb": "Paddington",
    "State": "NSW",
    "Post Code": "2074",
    "Lollipop": "Foo Bar Haz"
}

Там, где я не могу знать ключи карты заранее (, они могут быть определены пользователем -). Таким образом, я не уверен, как должен выглядеть связанный класс Java.

Т.е. для данного примера это могло бы выглядеть так:

public class MyClass {

    public String Suburb;
    public String State;
    public String PostCode;
    public String Lollipop;

}

Но это может быть неправильно для другого экземпляра файла JSON. В идеале мне нужно, чтобы Джексон каким-то образом сопоставлял значения с чем-то вроде NameValuePair . Я подозреваю, что в этом случае автоматическое сопоставление объектов не может быть вариантом -, может ли кто-нибудь подтвердить или опровергнуть это?

15
задан aaronsnoswell 16 July 2012 в 05:21
поделиться