Android プロジェクトで Jackson 1.9.5 を使用して 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のようなものにマップする方法が必要です。この場合、自動オブジェクト マッピングはオプションではないのではないかと思います - 誰かがこれを確認または否定できますか?