Java 如何解决DateTime和Jackson问题?
根据日期时间和jackson,我得到以下错误。我想不出一条出路。有什么建议吗Java 如何解决DateTime和Jackson问题?,java,datetime,jackson,jodatime,Java,Datetime,Jackson,Jodatime,根据日期时间和jackson,我得到以下错误。我想不出一条出路。有什么建议吗 Caused by: com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class org.joda.time.chrono.ISOChronology]: can not instantiate from JSON object (missing defau
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class org.joda.time.chrono.ISOChronology]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: ["[Ljava.lang.Object;",[1,3,["org.joda.time.DateTime",{"era":1,"dayOfYear":57,"dayOfWeek":5,"dayOfMonth":26,"year":2016,"yearOfCentury":16,"centuryOfEra":20,"secondOfDay":19539,"minuteOfDay":325,"hourOfDay":5,"minuteOfHour":25,"secondOfMinute":39,"millisOfSecond":538,"yearOfEra":2016,"weekyear":2016,"monthOfYear":2,"millisOfDay":19539538,"weekOfWeekyear":8,"chronology":["org.joda.time.chrono.ISOChronology",{"zone":["org.joda.time.UTCDateTimeZone",{"fixed":true,"id":"UTC"}]}],"millis":1456464339538,"zone":["org.joda.time.UTCDateTimeZone",{"fixed":true,"id":"UTC"}],"afterNow":false,"beforeNow":true,"equalNow":false}]]]; line: 1, column: 412] (through reference chain: Object[][2]->org.joda.time.DateTime["chronology"])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1080)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:295)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:142)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromObject(AsArrayTypeDeserializer.java:58)
at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:131)
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:521)
at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
at com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap.findDeserializeAndSet(BeanPropertyMap.java:285)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:248)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromAny(AsArrayTypeDeserializer.java:68)
at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer$Vanilla.deserializeWithType(UntypedObjectDeserializer.java:500)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:158)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:17)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer._deserialize(AsArrayTypeDeserializer.java:110)
at com.fasterxml.jackson.databind.jsontype.impl.AsArrayTypeDeserializer.deserializeTypedFromArray(AsArrayTypeDeserializer.java:50)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserializeWithType(ObjectArrayDeserializer.java:189)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserializeWithType(ObjectArrayDeserializer.java:17)
at com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:42)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3562)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2578)
at com.amazonaws.services.simpleworkflow.flow.JsonDataConverter.fromData(JsonDataConverter.java:96)
默认情况下,
jackson
对于JodaTime
查看jackson数据类型joda
project
将此jar添加到类路径后,必须通过以下方式之一注册模块:
// less performant
ObjectMapper mapper = new ObjectMapper();
mapper.findAndRegisterModules();
或
可能重复?我认为OP正在与我们合作JodaTime@StefanHaberl谢谢你指出这一点,我已经编辑了我的回答。这似乎不起作用(我仍然收到相同的运行时错误。还有其他建议吗?@AmrutaShah您能给我们看一下导致异常的代码吗?您是否使用任何框架?
// more performant
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());