今天写项目的时候要做一个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转换成基本类型数组的方法,只能自己写一个了
多学习,多思考