Web API から取得した JSON を Java オブジェクトに解析しようとしていますが、いくつか問題があります。
JSONは次のとおりです。
{
"d":{
"results":[
{
"__metadata" { some metadata I'm not interested in },
"attribute1":"attribute id 1",
"attribute2:"attribute value 1"
},
{
"__metadata" { some metadata I'm not interested in },
"attribute1":"attribute id 2",
"attribute2:"attribute value 2"
}
]
}
}
次に、このデータを次の Java クラスにマップして、結果が Catalog オブジェクトになり、結果配列の値が CatalogEntry オブジェクトになるようにします。
public class Catalog {
private final List<CatalogEntry> values;
public Catalog() {
values = null;
}
public Catalog(@JsonProperty("results") List<CatalogEntry> values) {
super();
this.values = values;
}
}
public class CatalogEntry {
private String attribute1;
private String attribute2;
public CatalogEntry() {}
public CatalogEntry(@JsonProperty("attribute1") String attribute1,
@JsonProperty("attribute2") String attribute2) {
this.attribute1 = attribute1;
this.attribute2 = attribute2;
}
}
次の行で、JSON 文字列を Catalog オブジェクトに逆シリアル化しようとします。
Catalog catalog = genson.deserialize(json, Catalog.class);
その後、Catalog オブジェクトの値を取得しようとしましたが、空のように見えるため、NullPointerException が発生します。JSON の "d" オブジェクトにデシリアライズの問題があると思いますが、これを修正するにはどうすればよいですか? どんな助けでも大歓迎です。