繁体   English   中英

无法反序列化Object []以使用Jackson进行分类

[英]Unable to deserialize Object[] to class using Jackson

我试图将我的代码Json数组中的这个Json元素反序列化为自定义类..但是我不能:

ObjectMapper OMapper = new ObjectMapper();
OMapper.configure(Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
OMapper.configure(Feature.ALLOW_SINGLE_QUOTES, true);
OMapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
OMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
OMapper.enable(SerializationFeature.INDENT_OUTPUT);

JsonNode node = OMapper.readTree("{\"headers\":[\"st1\", \"ddf2\", \"sdsd\"]}");


headers h = OMapper.treeToValue(node.get("headers"), headers.class);

这是课程:

public class headers{   
    public headers(){
        System.out.println("dssdsd");

    }

    @JsonSetter
    public void set(){
        System.out.println("ASAASAAS");
    }

    @JsonGetter()
    public JsonNode get(int index){
        System.out.println("XXXXXXXXXx");
        return null;
    }
}

但我收到此错误:

com.fasterxml.jackson.databind.exc.MismatchedInputException:无法在[来源:UNKNOWN; 行:-1,列:-1]位于com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:62)位于com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1307)在com.fasterxml.jackson.Databind.deser.com上的com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1070)处的com.fasterxml.jackson.databind.DeserializationContext.java:1116处。 com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOtherOther(BeanDeserializer.java:173)处的.deserializeFromArray(BeanDeserializerBase.java:1447)com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(Bean:149。 )

您应该将headers指定为数组。

headers[] h = OMapper.treeToValue(node.get("headers"), headers[].class);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM