无法使用杰克逊
我试图反序列化这个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;]处将START_ARRAY标记的实例反序列化line:-1,column:-1] at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:62) at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java :1307) 在 com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1116) 在 com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1070) 在 融为一体。 fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1447) at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializ eOther(BeanDeserializer.java:173) 在 com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:149)
应指定headers
作为数组。
headers[] h = OMapper.treeToValue(node.get("headers"), headers[].class);
谢谢,但如何从标题[]读取JsonNode?吸气剂和吸附剂? – Jason4Ever