При попытке десериализации JSON
возникает следующее исключение:Не найден подходящий конструктор для типа
[simple type, class MyObj$obj$Card]:
не может быть создан из объекта JSON (нужно добавить/включить информацию о типе?) в[Source: [email protected]; 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[]
не создает исключения, но у него отсутствует правильное сопоставление, которое я хочу получить.
Любой ключ, как я могу его решить? Отрывок будет БОЛЬШИМ! Что означает эта ошибка?
UPDATE
Я включил класс 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(); }
}