JSON を逆シリアル化しようとすると、次の例外が発生します
適切なコンストラクターが見つからないため、型
[simple type, class MyObj$obj$Card]:
が JSON オブジェクトからインスタンス化できません (型情報を追加/有効にする必要がありますか?)[Source: java.io.StringReader@4344ee21; line: 1, column: 201]
(参照チェーンを介して:MyObj["obj"]->Obj["cards"]
)
そしてJSONは
{
"obj":{
"api":"OK",
"cache":false,
"cards":[
{
"id":1232995897,
"items":[
{
"id":"vmdSJLpnY",
"cat":50,
"rating":0.0
}
]
},
{
"id":0005897,
"items":[
{
"id":"vxdSJLpnY",
"cat":50,
"rating":0.0
}
]
}
]
}
}
そして、Obj
クラス内に次のステートメントがあります
@JsonProperty("cards") private Card[] cards;
上記の例外が発生します。タイプCard[]
を に変更しObject[]
ても例外は発生しませんが、取得したい正しいマッピングが欠けています。
どうすれば解決できますか?スニペットは素晴らしいでしょう!このエラーはどういう意味ですか?
アップデート
Javaクラスを含めました。
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.Gson;
@JsonIgnoreProperties(ignoreUnknown=true)
public final class MyObj {
@JsonIgnoreProperties(ignoreUnknown=true)
public final class Obj {
@JsonIgnoreProperties(ignoreUnknown=true)
public final class Card {
@JsonIgnoreProperties(ignoreUnknown=true)
public final class Item {
@JsonProperty("id") private String id;
@JsonProperty("cat") private String cat;
@JsonProperty("rating") private String rating;
public final String getId() { return id; }
public final String getCat() { return cat; }
public final String getRating() { return ranting; }
public final String toString() { return new Gson().toJson(this); }
}
@JsonProperty("items") private Item[] items;
public final Item[] getItems() { return items; }
public final String toString() { return new Gson().toJson(this); }
}
@JsonProperty("cards") private Card[] cards;
public Card[] getCards() { return cards; }
public final String toString() { return new Gson().toJson(this); }
}
@JsonProperty("obj") MyObj obj;
public final Card[] getCards(){ return apiServiceResultsNoLists.getCards(); }
}