いくつかのJSONをpojoにマップしようとしています。私は実際のデータの情報を使用してそれを行う方法を見てきましたが、私の場合、データの違いを特定するものはありませんが、リストが何であるかはわかります。下の例では、私は囚人や建物のリストを取得することができますが、この場合、私は囚人のリストを取得していることを知っています。抽象クラスを使用してJSONデータの配列をPOJOに逆シリアル化するにはどうすればよいですか?
私は私がデータを持っている(私はが奇数であるが、私はJSON与えられています、私はそれを制御することはできませんネストされたデータを知っている。)
{
"data": [{
"data": {
"create_date": "2015-09-30",
"building": "12",
"dob": "2/11/1965",
"gender": "M",
"location": {
"zip": "10459"
},
"name": {
"first": "James",
"last": "Bond"
},
"id": "45"
},
"uri": "/prisoner/45"
}, {
"data": {
"create_date": "2015-09-27",
"building": "12",
"dob": "12/15/1985",
"gender": "M",
"location": {
"zip": "10459"
},
"name": {
"first": "Hans",
"last": "Gruber"
},
"id": "56"
},
"uri": "/prisoner/56"
}],
"totals": {
"total": 2,
"page": 1
},
"links": [{
"uri": "/prisoners?limit=2"
}]
}
下にJSONを与えられていますトータルオブジェクトとリンクオブジェクトを含むオブジェクト。また、ネストされたデータオブジェクト配列を含むDatumオブジェクトのコレクション(この場合はリスト)もあります。 Datumオブジェクトは存在抽象クラスとUri文字列を持っています。私は囚人とビルディング階級のものを持っています。上記のJSONでは、私は囚人のリストを取得していることを知っています。
私の現在のコード:
ObjectMapper mapper = new ObjectMapper();
Data data = mapper.readValue(responseJSON.toString(), Data.class);
私はデータムに入ると囚人オブジェクトにシングオブジェクトを変更した場合、それは完璧に動作します。私の質問は、受け入れられるようにするにはどうすればいいですか受刑者または建物まだ抽象的な存在のクラスを持っているか、少なくともそれがより一般的になるようにします。Datumクラスをいくつか作ることができますが、私は1 Datumクラスを持つ方法があると信じています。私は実際に私の例では2つだけでなく、私が得ることができるデータの数十種類の異なる可能性を持っています。