在执行以下Java代码时,报出cn.hutool.json.JSONArray cannot be cast to java.lang.Long错误:

JSONObject json = modificationService.getnvfillFromReportList(getUser(),item);

return getDataTable((List)json.get("data"), Math.toIntExact((Long) json.get("total")));

该错误的原因是将json.get("total")的结果强制转换为java.lang.Long类型时出错,因为json.get("total")返回的是cn.hutool.json.JSONArray类型,而不是java.lang.Long类型。

解决这个问题的方法是根据实际情况修改代码。可以通过以下两种方式解决该问题:

  1. **修改返回数据类型:将cn.hutool.json.JSONArray类型的数据转换为java.lang.Long类型。**可以通过调用JSONArraygetLong()方法获取Long类型的值,例如:
JSONObject json = modificationService.getnvfillFromReportList(getUser(), item);
JSONArray totalArray = (JSONArray) json.get("total");
Long total = totalArray.getLong(0);
return getDataTable((List) json.get("data"), Math.toIntExact(total));
  1. **修改返回数据类型:将cn.hutool.json.JSONArray类型的数据转换为java.lang.Integer类型。**可以通过调用JSONArraygetInt()方法获取Integer类型的值,例如:
JSONObject json = modificationService.getnvfillFromReportList(getUser(), item);
JSONArray totalArray = (JSONArray) json.get("total");
Integer total = totalArray.getInt(0);
return getDataTable((List) json.get("data"), total);

根据你实际的业务逻辑和数据类型,选择其中一种方式进行修改即可。

解决Java代码中JSONArray无法转换为Long类型的错误

原文地址: https://www.cveoy.top/t/topic/pe73 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录