com.fasterxml.jackson.databind.JsonMappingException:No suitable constructor found for type

来源:互联网 发布:出口退税算法 编辑:程序博客网 时间:2024/05/18 06:27

1.有可能是反序列的类确实没有默认构造方法,检查一下。

2.因为我遇到的问题不属于1的情况(最后发现是内部类的问题),首先我是建立了这样一个类,作用是作一个序列化和反序列化的测试:

public class Test {    @org.junit.Test    public void main() throws Exception {        Seiral seiral = new Seiral();        seiral.setId("1");        seiral.setName("hhh");        ObjectMapper mapper = new ObjectMapper();        String ooo = mapper.writeValueAsString(seiral);        System.out.println(ooo);        Seiral ss = mapper.readValue(ooo, Seiral.class);        System.out.println(ss);    }    public class Seiral implements Serializable {    private static final long serialVersionUID = 1L;    private String id;    private transient String name;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "id:" + id + ", name:" + name;    }}

然后运行之后发现这个错误

com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class com.bonc.vbap.data.dataset.Test$Seiral]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?) at [Source: {"id":"11111","name":"test"}; line: 1, column: 2]    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148).....

说是反序列化的类没有constructor 或者 creator,然后我把内部类单独放到外面,新建一个类,这个问题就没有了,具体是什么原因我也没有深究。

阅读全文
0 0
原创粉丝点击