Java中JSONArray转换成int[]的办法

今天写项目的时候要做一个MyBatis的带IN子句的删除,于是用一个整型数组来保存待删除数据的ID

从前端将JSON字符串搞过来之后如何将JSONArray转换成int类型数组就成了个问题

下面是我的办法(此处的JSONArray对象是Hutool中的,不是org.json中的,不过道理都是一样的)

1     JSONArray jsonArray = JSONUtil.parseArray(deleteFileIds);
2         if (jsonArray.size() == 0) {
3             return new Responses(StatusCode.INPUT_ERROR, StatusMessage.PARAM_ERROR);
4         }
5         int[] deleteFileIdArray = new int[jsonArray.size()];
6         for (int i = 0; i < jsonArray.size(); i++) {
7             deleteFileIdArray[i] = (int) jsonArray.get(i);
8         }    

解读一下代码流程大概就是:

将字符串转换为JSON数组

然后初始化一个大小跟JSON数组相同的int类型数组

使用循环遍历元素将JSON数组中的每个元素放入int类型数组中

不管是Hutool还是fastjson貌似都没有提供JSONArray转换成基本类型数组的方法,只能自己写一个了

多学习,多思考