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