在做JSON解析时,遇到了在不知道数组类型的前期下,需要转化为具体类型数组的问题。可以使用JAVA的反射来做。
JSONArray jsonArray = (JSONArray) entry.getValue();if (jsonArray.size() > 0) { Object array = null; // 假如数组中的class类型不同,则初始化Object数组 if (jsonArray.size() > 1 && !jsonArray.get(0).getClass().getName() .equals(jsonArray.get(1).getClass().getName())) { array = Array.newInstance(Object.class, jsonArray.size()); } else { // 根据Json数组中的元素来确定数组类型 array = Array.newInstance(jsonArray.get(0).getClass().getClass(), jsonArray.size()); } // 使用Array中的set方法来设置数组的值 for (int i = 0; i < jsonArray.size(); i++) { Array.set(array, i, jsonArray.get(i)); } processBasicMap.put(entry.getKey(), array);}