Jacksonで2つ以上の型を持つ配列をパースするには
JavaのJsonパーサJacksonを使って配列をパースするとき普通であれば。以下のようにレスポンスのモデルを作成し、readValues
を用いてパースできます。
ObjectMapper mapper = new ObjectMapper();
try{
ResponseClass response = mapper.readValue(response.toString(), ResponseClass.class);
}(SomeException e){
}
--------------
//Model class
class ResponseClass{
public List<SomeType> items;
}
--------------
//Json response
{
[
{
type:"TypeA",
name:"hoge"
},
........
しかし例えばこの配列の要素の型が複数ある場合はどうすればいいのでしょうか。例えば取得するJsonオブジェクトが以下のようなものの場合。
{
[
{
type:"typeA",
name:"hoge"
},
{
type:"typeB",
mail:"hoge@hoge.com"
}
.......
]
{
この場合はObjectモデルのListのジェネリクスとフィールド名はどのようにすればいいのでしょう。