在我的MongoDB数据库中有一些带有日期字段的文档。通过控制台查找,结果如下所示:
"data" : ISODate("2015-03-01T00:40:45Z")
但是当GSON尝试检索对象时出现这样的错误:
javax.servlet.ServletException: com.google.gson.JsonSyntaxException: 03-01-2015-01-40-45-000
我尝试按如下所述使用GSONBuilder,但错误仍然存在:
Gson gson= new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssX").create();
我该如何解决这个问题?
4条答案
按热度按时间wbgh16ku1#
我从服务器接收到一个Json对象,其中Date的值(时间戳)很长。
我正在创建我的Gson对象:
这是我的JsonDateDeserializer的代码:
ktecyv1j2#
更新的长时间= json.getAsJsonObject().getAsJsonPrimitive(“$日期”).getAsLong();
http://www.techiesinfo.com/performance
3ks5zfa03#
我还使用Gson来反序列化JSON字符串。对我来说,以下格式都不起作用:
他们每个人都无法解析日期。所以我只是从格式中删除了最后一个字符。而且成功了。
我知道这不是正确的方法,但至少它允许您暂时解析日期。
编辑:在这个链接Gson: JsonSyntaxException on date处有一个更好的解决方案。基本上,这是那里答案的要点:
编辑2:发现上面的deserialize()函数中的逻辑不能正常工作。因此决定使用Joda-Time库。下面是修改后的函数:
这是工作。:)
所以基本上,要么使用第一个选项,要么使用最后一个选项。
cnwbcb6i4#
根据需要将Locatime更改为Date或Datetime。
}