java - 如何在 android 中使用 Gson 反序列化 LocalDateTime?
问题描述
现在 gson 将我的 Spring Boot 服务器中的 LocalDateTime 反序列化为
"localDateTime": {
"date": {
"day": //someday,
"month": //somemonth
"year": //someyear
},
"time": {
"hours": //somehour,
"minutes": //someminute,
"seconds": //someseconds
}
}
但是当我使用完全相同的 api 在 android 中反序列化它时,会出现这个异常:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.scmuapp, PID: 13821
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.time.LocalDate.toString()' on a null object reference
这意味着 LocalDateTime 对象本身不是 null,但基础值是。现在我知道一个事实,即我的请求填充了 5 个对象,所有对象都具有日期和时间,并且值相等,因为它是脚本创建的,因此它们没有理由为空,但两者都是。我收到了一个页面通用对象,该对象定义为:
private int pageSize, page, elements, totalPages, total;
private List<T> content;
List 内容带来了数据,在这种情况下有一堆“基本值”,也就是字符串和整数,但是 LocalDateTime 只是没有正确解析。有任何想法吗?
解决方案
我找到了一个理由。可能和安卓版本有关。我没有按说修复它,但基本上在我的项目中本地创建了一个 localdatetime 版本并且效果很好
推荐阅读
- angular - 在 Ionic 5 路由器中登录/注销时登录/主页不会被破坏
- javascript - 我的 React Native 应用程序的导入/导出问题
- ios - 最小化 IOS 应用程序时后台处理在几秒钟后被终止
- java - 为什么 Android Studio 和 gradle 可以使用不同的类路径进行单元测试?
- amazon-web-services - 使用 kubeadm 初始化一个 kubernetes 集群,但在 aws 上使用公共 IP
- agora.io - joinChannel 方法:uid 分配
- c++ - C++:matplotlibcpp.h 和 Python.h 链接器错误
- python - 将str的numpy数组转换为字节字符串
- javascript - AsyncIterable 和 Observable 之间的实际区别是什么?
- shell - 如何搜索包含特定“关键字:字符串”对的文件并使用 awk 打印其全部内容?