使用 Java [ json-simple.jar 库向 JsonArray 或 JsonObject 添加名称

Add a name to JsonArray or JsonObject using Java [ json-simple.jar library]

首先我正在使用 json-simple-2.1.2.jar[ Link on GitHub ].

它与 json-simple-1.1.1.jar 类似,但有些 类 已更新,有些已弃用,但逻辑​​相同。


Java 代码 [产生以下内容]

 //JSON Array [ROOT]
    JsonArray json = new JsonArray();

    //Libraries Array
    JsonArray libraries = new JsonArray();
    for (int i = 0; i < 2; i++) {
        JsonObject object = new JsonObject();
        object.put("name", "library->" + i);
        libraries.add(object);
    }

    //Add to ROOT ARRAY
    json.add(libraries);

    //Write to File
    try (FileWriter file = new FileWriter(jsonFilePath)) {
        file.write(json.toJson());
        file.flush();
    } catch (IOException e) {
        e.printStackTrace();       
    }

制作了json个文件:

[
    [
        {
            "name": "library->0"
        },
        {
            "name": "library->1"
        }
    ]
]

我想要什么:

[   
  "libraries":[
        {
            "name": "library->0"
        },
        {
            "name": "library->1"
        }
    ]
]

如您所见,JsonArray 有一个名称,例如:"libraries"

我找不到任何方法来使用 json-simple.jar 中的任何一个。

非常感谢您的帮助:)

有问题的预期 JSON 格式无效 JSON。可以在这里验证JSONLINT.com

如果将起始括号和 angular 括号替换为花括号,它将有效 JSON。 PFB代码构建相同。

import org.json.simple.JsonArray;
import org.json.simple.JsonObject;

import java.io.*;

public class Test {

    public static void main(String[] args)
            throws FileNotFoundException {

        //JSON Array [ROOT]
        JsonObject finalOutput = new JsonObject();

        //Libraries Array
        JsonArray libraries = new JsonArray();
        for (int i = 0; i < 2; i++) {
            JsonObject object = new JsonObject();
            object.put("name", "library->" + i);
            libraries.add(object);
        }

        finalOutput.put("libraries", libraries);

        //Write to File
        try (FileWriter file = new FileWriter("C:\Users\b21677\output.json")) {
            file.write(finalOutput.toJson());
            file.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}