gpt4 book ai didi

java - fromJson 引发无法解析的日期异常

转载 作者:行者123 更新时间:2023-11-30 08:51:53 26 4
gpt4 key购买 nike

我开发了具有客户端-服务器和数据库的 android 应用。

我使用gson来解析服务端和客户端之间的对象。

我的日期类型是 java.sql.date

当我运行此代码时(消息是我创建的对象...):

public ArrayList<Message> getMessagesByKehilaName(String kehilaName) throws Exception {
String result = GET(URL + "getMessagesByKehilaName?kehilaName=" + kehilaName);
Gson gson = new Gson();
ArrayList<Message> am = new ArrayList<Message>(Arrays.asList(gson.fromJson(result, Message[].class)));
return am;
}

我得到这个异常:

com.google.gson.JsonSyntaxException: java.text.ParseException: Unparseable date: "2011-11-05" (at offset 0)

我的数据库上的值确实是 2011-11-05 并且我的消息日期的类型也是 java.sql.date

为什么我有这个异常?

最佳答案

Gson默认的Date适配器和日期格式不同。您需要注册 SQL 日期类型适配器,并在反序列化 JSON 之前设置预期的日期格式。

SqlDateTypeAdapter sqlAdapter = new SqlDateTypeAdapter();
Gson gson = new GsonBuilder()
.registerTypeAdapter(java.sql.Date.class, sqlAdapter )
.setDateFormat("yyyy-MM-dd")
.create();

现在使用这个 gson 对象来解析数据。

编辑

将格式从 yyyy/MM/dd 更改为 yyyy-MM-dd

关于java - fromJson 引发无法解析的日期异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30397671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com