Jackson - JsonMappingException 由于构造函数
我在尝试反序列化JSON时遇到以下异常
没有为类型找到合适的构造函数,无法从 JSON 对象实例化(需要添加/启用类型信息?)在(通过引用链:
[simple type, class MyObj$obj$Card]:
[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(); }
}