java - 使用 Java [json-simple.jar 库] 将名称添加到 JsonArray 或 JsonObject

标签 java json json-simple

首先,我使用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

如果将起始括号和尖括号替换为花括号,则它将是有效的 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();
        }
    }

}

关于java - 使用 Java [json-simple.jar 库] 将名称添加到 JsonArray 或 JsonObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42570242/

相关文章:

java - Java Swing 中正确的模型- View - Controller 模式

ios - 将 JSON 响应转换为字典 Swift

java - 将 JSON 子对象属性绑定(bind)到 Jackson 中的 Java 对象字段

java - Java 中的 JSON : Using encoded JSON files and keeping it

java - Java 中的 pretty-print JSON

java - Parcelable 协议(protocol)需要一个名为 CREATOR 的 Parcelable.Creator 对象(我确实有 CREATOR)

java - setBounds(x,y,width,height) 和 setBounds(new Rectangle(x,y,width,height)) 之间的区别

java - 使用Vertx和jdbc获取Oracle存储过程ref_cursor的结果

java - protobuf 负载比 JSON 大?

android - 错误 JSON.simple : java. util.zip.ZipException : duplicate entry: org/hamcrest/BaseDescription. 类