解决Java代码中JSONArray无法转换为Long类型的错误
在执行以下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类型。
解决这个问题的方法是根据实际情况修改代码。可以通过以下两种方式解决该问题:
- **修改返回数据类型:将
cn.hutool.json.JSONArray类型的数据转换为java.lang.Long类型。**可以通过调用JSONArray的getLong()方法获取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));
- **修改返回数据类型:将
cn.hutool.json.JSONArray类型的数据转换为java.lang.Integer类型。**可以通过调用JSONArray的getInt()方法获取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);
根据你实际的业务逻辑和数据类型,选择其中一种方式进行修改即可。
原文地址: https://www.cveoy.top/t/topic/pe73 著作权归作者所有。请勿转载和采集!