首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >由构造函数引起的Jackson - JsonMappingException

由构造函数引起的Jackson - JsonMappingException
EN

Stack Overflow用户
提问于 2012-10-11 17:01:24
回答 5查看 94.7K关注 0票数 28

在尝试反序列化JSON时,我遇到了以下异常

找不到适合类型的构造函数[simple type, class MyObj$obj$Card]:无法从JSON对象实例化(需要添加/启用类型信息?)在[Source: java.io.StringReader@4344ee21; line: 1, column: 201] (通过参考链:MyObj["obj"]->Obj["cards"])

而JSON是

代码语言:javascript
复制
{
  "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类。

代码语言:javascript
复制
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(); }
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12835911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档