杰克逊 - 无法反序列化字符串列表

时间:2013-06-15 15:39:43

标签: java jackson

双方都有:

Class ListWrapper {
    public List<String> l;
    ListWrapper(List<String> l) {
        this.l = l;
    }
}

在客户端,我有:

    ObjectMapper mapper = new ObjectMapper();
String fl;
    try {
        fl = mapper.writeValueAsString(new ListWrapper(u.getList()));
    } catch (IOException e) {
        fl = "null";
    }

在服务器端,我有:

String data = getQuery().........;
List l = new ObjectMapper.readValue(data,ListWrapper.class).list;

但我得到了:

org.codehaus.jackson.map.JsonMappingException: Can not create Bean deserializer for ([simple type, class il.ac.technion.ssdl.hitch.resource.ListWrapper]): neither default/delegating constructor nor factory methods found

当我试图反序列化列表时。

编辑:

在客户端打印列表时,我得到了:

 {"list":["v1","v2,"v3"]}

1 个答案:

答案 0 :(得分:1)

  

发现默认/委托构造函数或工厂方法

您的ListWrapper类可能缺少默认构造函数。

public ListWrapper(){
}

您的JSON字符串不正确:

  

{“list”:[“v1”,“v2,”v3“]}&lt;&lt;&lt; ---在v2之后缺少双引号!