我遇到joda-time
及其与我的Android应用程序集成的问题。
我想反序列化包含DateTime对象的JSON,该对象用字符串表示:
{
"userId": 333,
"username": "myuserid",
"timestamp": "2014-11-19T17:02:11.454Z"
}
但不幸的是,我收到了NoClassDefFoundError
。
java.lang.NoClassDefFoundError: org/joda/convert/ToString...
Caused by: java.lang.ClassNotFoundException: org.joda.convert.ToSt
我尝试添加joda-converter
并使用与服务器相同的版本添加joda-time
依赖项。但尽管如此,我经常收到例外。我目前的joda-time
家属是:
compile 'org.joda:joda-convert:1.8.1'
compile 'joda-time:joda-time:2.1'
我也尝试过用户joda-time-android
,但也没有成功。
答案 0 :(得分:0)
查看我发现的org.joda.convert
,org.joda.convert.ToString
是一个界面。你不能用它来转换
假设您成功解析了JSON String
并且您的对象的定义是:
public class json {
private Long userId;
private String username;
private String timestamp;
}
这就是你想做什么的问题,因为你没有准确的准确
如果您想从joda-time库转换String
timespamp
到DateTime
对象,请按this link。它提供了解析它的解决方案,因为您提供的日期是描述格式的标准ISO-8601日期。
但是,导入整个库只是为了解析String
到Date
是一种效率低下的解决方案。 joda-time的初始化速度缓慢,而且性能在Android上很重要。按照this link将字符串转换为Java
的{{1}}对象,而不导入具有4755种方法的库。