900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > jackson java反序列化_java – Jackson JSON强制反序列化为对象

jackson java反序列化_java – Jackson JSON强制反序列化为对象

时间:2021-03-02 01:37:32

相关推荐

jackson java反序列化_java – Jackson JSON强制反序列化为对象

我得到了一个代表团的课程设置

public class MyClass implements List {

public String name;

public List target; // this is the delegation target

// more fields

@Override

public Integer get(int index) {

return target.get(index);

}

// all other method in target interface is delegated

}

我得到了一个看起来像这样的JSON:

{"target": [1, 2, 3] , "name":"foo"}

杰克逊抛出这个:

Exception in thread "main" com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.foo.MyClass out of START_OBJECT token

at [Source: java.io.StringReader@156e5f3e; line: 1, column: 1]

at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)

at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:691)

at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:685)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.handleNonArray(CollectionDeserializer.java:256)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:214)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:204)

at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:23)

at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2986)

at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2091)

我猜测杰克逊认为MyClass是一个列表所以不知道如何处理{}因为[]是预期的

我通过让MyClass没有实现List< Integer>来证实了我的推测. :

public class MyClass { /*same stuff*/}

一切顺利.但我需要MyClass来实现List< Integer> ….

我可以使用模块中的注释或配置来解决这个问题吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。