Java 使用带有Joda Datetime的Jackson库反序列化Json对象
我试图使用Jackson库来反序列化Json对象,但在Joda Datetime格式的反序列化中遇到了一些问题 此代码引发以下错误: 无法解析Lorg/joda/time/base/AbstractInstant;注释类1557Java 使用带有Joda Datetime的Jackson库反序列化Json对象,java,android,json,web-services,jackson,Java,Android,Json,Web Services,Jackson,我试图使用Jackson库来反序列化Json对象,但在Joda Datetime格式的反序列化中遇到了一些问题 此代码引发以下错误: 无法解析Lorg/joda/time/base/AbstractInstant;注释类1557 DataWrapper list = mapper.readValue(response, DataWrapper.class); 我已经试着找到一些关于这个的东西,但什么也没有 有完整的代码: public class DataWrapper { publi
DataWrapper list = mapper.readValue(response, DataWrapper.class);
我已经试着找到一些关于这个的东西,但什么也没有
有完整的代码:
public class DataWrapper {
public List<ScheduleEntry> data;
}
public static class ScheduleEntry {
public long ID;
public DateTime StartDate;
public DateTime EndDate;
public String Description;
}
WebService callWebService = new WebService(SERVICE_URI);
String response = callWebService.webInvoke("/GetScheduleEntrys", params);
ObjectMapper mapper = new ObjectMapper();
try
{
DataWrapper list = mapper.readValue(response, DataWrapper.class);
List<ScheduleEntry> items = list.data;
}
公共类数据包装器{
公开名单数据;
}
公共静态类ScheduleEntry{
公共长ID;
公共日期时间开始日期;
公共日期时间结束日期;
公共字符串描述;
}
WebService callWebService=新的WebService(SERVICE\u URI);
String response=callWebService.webInvoke(“/GetScheduleEntrys”,参数);
ObjectMapper mapper=新的ObjectMapper();
尝试
{
DataWrapper list=mapper.readValue(响应,DataWrapper.class);
列表项=List.data;
}
网络服务:
[OperationContract]
[WebInvoke(Method = "POST",
UriTemplate = "GetScheduleEntrys",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json)]
List<ScheduleEntry> GetScheduleEntrys(string Token);
[运营合同]
[WebInvoke(Method=“POST”,
UriTemplate=“GetScheduleEntrys”,
BodyStyle=WebMessageBodyStyle.WrappedRequest,
ResponseFormat=WebMessageFormat.Json,
RequestFormat=WebMessageFormat.Json)]
列出GetScheduleEntrys(字符串标记);
JSON:
[{“描述”:“客户何塞”,“结束日期”:“/Date(1353319200000+0000)/”,“ID”:0,“StartDate”:“/Date(135331560000+0000)/”,{“描述”:“客户卡洛斯”,“结束日期”:“/Date(13533480000+0000)/”,“ID”:0,“StartDate”:“/Date(135334400000+0000)/”,{“描述”:“客户佩德罗”,“结束日期”:“/Date(1353513600000+0000)/”,“ID”:0,“StartDate”:“/Date(1353510000000+0000)/”,{“描述”:“客户马可”,“结束日期”:“/日期(1353664800000+0000)/”,“ID”:0,“开始日期”:“/日期(1353661200000+0000)/”,{“描述”:“客户何塞”,“结束日期”/“日期(1353319200000+0000)/”,“ID”:0,“开始日期”:“/日期(1353315600000+0000)/”,{“描述”:“客户卡洛斯”,“结束日期”:“/日期(1353348000000+0000)/”,“ID”:0,“起始日期”:“/Date(135334400000+0000)/”,{“Description”:“Cliente Pedro”,“EndDate”:“/Date(1353513600000+0000)/”,“ID”:0,“StartDate”:“/Date(1353510000000+0000)/”,{“Description”:“Cliente Marco”,“EndDate”:“/Date(1353664800000+0000)/”,“ID”:0,“StartDate”:“/Date(1353661200000+0000)/”]
完整日志
01-03 17:39:24.700:E/dalvikvm(18494):无法解析Lorg/joda/time/base/AbstractInstant;注释类1557
01-03 17:39:28.505:W/dalvikvm(18494):threadid=11:线程以未捕获异常退出(组=0x40c4d1f8)
01-03 17:39:28.650:E/AndroidRuntime(18494):致命异常:AsyncTask#1
01-03 17:39:28.650:E/AndroidRuntime(18494):java.lang.RuntimeException:执行doInBackground()时出错
01-03 17:39:28.650:E/AndroidRuntime(18494):在android.os.AsyncTask$3.done(AsyncTask.java:278)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
01-03 17:39:28.650:E/AndroidRuntime(18494):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
01-03 17:39:28.650:E/AndroidRuntime(18494):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
01-03 17:39:28.650:E/AndroidRuntime(18494):在java.lang.Thread.run(Thread.java:856)处
01-03 17:39:28.650:E/AndroidRuntime(18494):原因:java.lang.NoClassDefFoundError:org/joda/convert/ToString
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.lang.reflect.Method.getDeclaredAnnotations(本机方法)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于java.lang.reflect.Method.getDeclaredAnnotations(Method.java:267)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.AnnotatedClass.\u addMixUnders(AnnotatedClass.java:999)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.AnnotatedClass.\u addMemberMethods(AnnotatedClass.java:610)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.AnnotatedClass.resolveMemberMethods(AnnotatedClass.java:421)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.AnnotatedClass.memberMethods(AnnotatedClass.java:243)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.\u addMethods(POJOPropertiesCollector.java:442)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:232)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:142)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:81)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:11)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.DeserializationConfig.introspect(DeserializationConfig.java:507)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.deser.DeserializerCache.\u createDeserializer(DeserializerCache.java:326)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
01-03 17:39:28.650:E/AndroidRuntime(18494):位于com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
01-03 17:39:28.650:E/AndroidRuntime(18494):在