问题描述:
.UnsupportedOperationException: null
问题分析:
1、使用Gson进行序列化,但是使用fastjson进行反序列化,由于fastjson不支持Gson序列化LocalDate、LocalDateTime类型数据之后的json数据,导致报错。
-
List<TestModel> testModelList = new ArrayList<>();
-
TestModel testModel = new TestModel();
-
(());
-
(());
-
(testModel);
-
Gson gson = new Gson();
-
String jsonStr = (testModelList);
-
testModelList = (jsonStr, );
[{"localDate":{"year":2022,"month":5,"day":18},"localDateTime":{"date":{"year":2022,"month":5,"day":18},"time":{"hour":10,"minute":27,"second":34,"nano":979527900}}}]
解决办法:
1、使用Gson进行反序列化。
-
List<TestModel> testModelList = new ArrayList<>();
-
TestModel testModel = new TestModel();
-
(());
-
(());
-
(testModel);
-
Gson gson = new Gson();
-
String jsonStr = (testModelList);
-
testModelList = (jsonStr, new TypeToken<List<TestModel>>() {
-
}.getType());
2、序列化和反序列化方式保持不变,LocalDate、LocalDateTime类型在序列化之前转换为String类型。
-
List<TestModel> testModelList = new ArrayList<>();
-
TestModel testModel = new TestModel();
-
(().format(("yyyy-MM-dd")));
-
(().format(("yyyy-MM-dd HH:mm:ss")));
-
(testModel);
-
Gson gson = new Gson();
-
String jsonStr = (testModelList);
-
testModelList = (jsonStr, );