如何在Processing中从JSON文件加载int[][]类型的二维整数数组?
解决Processing中加载JSON二维int数组的问题
问题根源
currentLevel.get("floor")返回的是Object类型,必须先转为JSONArray才能调用其方法;- Processing的
JSONArray没有直接获取二维int数组的getIntArray()方法,需要手动逐层解析。
解决方案
使用嵌套循环遍历JSONArray的外层和内层元素,逐个转换为int类型并组装成二维数组:
JSONObject currentLevel = loadJSONObject("assets/levels/test_level.json"); JSONArray floorOuterArray = currentLevel.getJSONArray("floor"); // 直接获取外层JSONArray // 初始化二维int数组 int[][] floor = new int[floorOuterArray.size()][]; // 遍历外层数组 for (int i = 0; i < floorOuterArray.size(); i++) { JSONArray floorInnerArray = floorOuterArray.getJSONArray(i); floor[i] = new int[floorInnerArray.size()]; // 遍历内层数组,转换为int for (int j = 0; j < floorInnerArray.size(); j++) { floor[i][j] = floorInnerArray.getInt(j); } } // 验证结果 for (int[] row : floor) { println(row); }
额外注意事项
- 确保你的JSON文件中"floor"的结构是标准二维数组(内层元素必须是数字类型),示例结构如下:
{ "floor": [ [0, 1, 0], [1, 1, 1], [0, 0, 1] ] }
- 如果JSON结构错误(比如内层不是数组、元素为字符串),会抛出类型转换异常,需要先检查JSON格式是否正确。
内容的提问来源于stack exchange,提问作者declandeclandeclan
相关产品推荐
相关产品推荐

