使用JSON-simple-1.1.1在Java中创建含多维数组的JSON文件
用JSON-simple-1.1.1创建多维JSON数组的解决方案
别担心,用JSON-simple创建多维JSON数组其实很简单——核心思路就是嵌套JSONArray对象,毕竟JSON里的多维数组本质就是“数组的元素还是数组”,而JSONObject主要用来处理键值对结构,两者结合就能轻松实现你要的效果。
我给你两个实用的代码示例,分别对应纯多维数组和结合JSONObject的场景:
示例1:创建纯二维JSON数组并写入文件
import org.json.simple.JSONArray; import java.io.FileWriter; import java.io.IOException; public class TwoDimensionalJsonDemo { public static void main(String[] args) { // 外层JSONArray:对应二维数组的第一维 JSONArray twoDArray = new JSONArray(); // 创建第一个内层数组(行1) JSONArray row1 = new JSONArray(); row1.add("Java"); row1.add("Python"); row1.add("JavaScript"); // 创建第二个内层数组(行2) JSONArray row2 = new JSONArray(); row2.add(2024); row2.add(2023); row2.add(2022); // 将内层数组添加到外层数组中 twoDArray.add(row1); twoDArray.add(row2); // 写入JSON文件 try (FileWriter writer = new FileWriter("two_d_array.json")) { writer.write(twoDArray.toJSONString()); writer.flush(); System.out.println("二维数组JSON文件已生成!"); } catch (IOException e) { e.printStackTrace(); } } }
这段代码会生成如下JSON内容:
[["Java","Python","JavaScript"],[2024,2023,2022]]
示例2:创建包含三维数组的JSON对象
如果需要把多维数组作为某个键的值放在JSON对象里,只需要把嵌套好的JSONArray放到JSONObject中即可:
import org.json.simple.JSONArray; import org.json.simple.JSONObject; import java.io.FileWriter; import java.io.IOException; public class ThreeDimensionalJsonDemo { public static void main(String[] args) { JSONObject mainObj = new JSONObject(); // 外层JSONArray:对应三维数组的第一维 JSONArray threeDArray = new JSONArray(); // 创建第一个二维数组元素(第一个矩阵) JSONArray matrix1 = new JSONArray(); JSONArray matrix1Row1 = new JSONArray(); matrix1Row1.add(1); matrix1Row1.add(2); JSONArray matrix1Row2 = new JSONArray(); matrix1Row2.add(3); matrix1Row2.add(4); matrix1.add(matrix1Row1); matrix1.add(matrix1Row2); // 创建第二个二维数组元素(第二个矩阵) JSONArray matrix2 = new JSONArray(); JSONArray matrix2Row1 = new JSONArray(); matrix2Row1.add(5); matrix2Row1.add(6); JSONArray matrix2Row2 = new JSONArray(); matrix2Row2.add(7); matrix2Row2.add(8); matrix2.add(matrix2Row1); matrix2.add(matrix2Row2); // 将二维数组添加到三维数组中 threeDArray.add(matrix1); threeDArray.add(matrix2); // 把三维数组放到JSON对象里 mainObj.put("3d_matrix", threeDArray); mainObj.put("note", "这是一个三维数组示例"); // 写入文件 try (FileWriter writer = new FileWriter("three_d_array_with_obj.json")) { writer.write(mainObj.toJSONString()); writer.flush(); System.out.println("包含三维数组的JSON文件已生成!"); } catch (IOException e) { e.printStackTrace(); } } }
生成的JSON内容如下:
{"3d_matrix":[[[1,2],[3,4]],[[5,6],[7,8]]],"note":"这是一个三维数组示例"}
核心要点总结
- 不管是几维数组,都是**
JSONArray嵌套JSONArray**:每一层数组都用JSONArray实例表示,然后将内层数组作为元素添加到外层数组中。 - 若需要键值对结构,用
JSONObject承载:将嵌套完成的多维JSONArray作为值,关联到某个键上即可。 - 最后通过
toJSONString()方法将对象转为JSON字符串,再写入文件就完成了。
内容的提问来源于stack exchange,提问作者Giorgio A.
相关产品推荐
相关产品推荐

