You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:18:59