Java : null问题解决

时间:2025-04-09 08:33:58

问题描述:

.UnsupportedOperationException: null

问题分析:

1、使用Gson进行序列化,但是使用fastjson进行反序列化,由于fastjson不支持Gson序列化LocalDate、LocalDateTime类型数据之后的json数据,导致报错。

  1. List<TestModel> testModelList = new ArrayList<>();
  2. TestModel testModel = new TestModel();
  3. (());
  4. (());
  5. (testModel);
  6. Gson gson = new Gson();
  7. String jsonStr = (testModelList);
  8. 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进行反序列化。

  1. List<TestModel> testModelList = new ArrayList<>();
  2. TestModel testModel = new TestModel();
  3. (());
  4. (());
  5. (testModel);
  6. Gson gson = new Gson();
  7. String jsonStr = (testModelList);
  8. testModelList = (jsonStr, new TypeToken<List<TestModel>>() {
  9. }.getType());

2、序列化和反序列化方式保持不变,LocalDate、LocalDateTime类型在序列化之前转换为String类型。

  1. List<TestModel> testModelList = new ArrayList<>();
  2. TestModel testModel = new TestModel();
  3. (().format(("yyyy-MM-dd")));
  4. (().format(("yyyy-MM-dd HH:mm:ss")));
  5. (testModel);
  6. Gson gson = new Gson();
  7. String jsonStr = (testModelList);
  8. testModelList = (jsonStr, );