javascript
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> ….
我可以使用模塊中的注釋或配置來解決這個問題嗎?
總結
以上是生活随笔為你收集整理的jackson java反序列化_java – Jackson JSON强制反序列化为对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java栈代码执行_这段实现栈的java
- 下一篇: gradle idea java ssm