gpt4 book ai didi

java - 如何在 Java 中创建特定格式的 JSON 文件

转载 作者:行者123 更新时间:2023-11-29 05:34:36 25 4
gpt4 key购买 nike

我正在尝试使用 Java 以特定格式编写 JSON 文件。例如:假设我想获取按以下格式编写的 JSON 文件:

{
"resource":[{"name":"Node1"}],

"literals":[{"literal":"A", "B", "C", "D"}]
}

您可能会注意到,在 resource 中,我想在其中写入字符串,而在 literals 中,我希望有一个字符串数组列表。这是我的 Java 代码:

public void writeJSON() {

public ArrayList<String> literals = new ArrayList<String>();

literals.add("A");
literals.add("B");
literals.add("C");
literals.add("D");

JSONObject jsonObject = new JSONObject();
JSONArray jsonArray = new JSONArray();

jsonObject.put("name", resources.getResource());

resources.setLiterals(literals);

jsonObject.put("literal", resources.getLiterals());

try {

FileWriter file = new FileWriter("/Users/Documents/sample.json");
file.write(jsonObject.toJSONString());
file.flush();
file.close();

} catch (IOException e) {
e.printStackTrace();
}
}

这是我为 JSON 文件设置和获取值的 Java 文件:

public class Resources {

String resource;
ArrayList<String> literals;
public Resources()
{

}
public void setResource(String resource)
{
this.resource = resource;
}

public String getResource()
{
return resource;
}
public void setLiterals(ArrayList<String> literals)
{
this.literals = literals;
}
public ArrayList<String> getLiterals()
{
return literals;
}
}

谁能帮我根据上面提供的格式创建一个 JSON 文件。非常感谢您的帮助。

最佳答案

让我们开始吧,您尝试创建的 Json 是无效的。这就是你所拥有的:

{
"resource":[{"name":"Node1"},
{"name":"Node2"}],

"literals":[{"source":"A", "B", "C", "D"},
{"source":"E", "F", "G", "H"}]
}

如您所见,resource 看起来不错 - 即它是一个包含 List 对象的对象。另一方面,literals 是一个包含什么的 List 的对象?因为不是 {"source":"A", "B", "C", "D"} 也不是 {"source":"E", "F", "G", "H"} 是一个有效的 Json

首先弄清楚这一点,然后更新您的 java 代码,我们将从那里开始。

如果这样:{"resource":[{"name":"Node1"}],"literals":[{"literal":["A","B","C","D"]}]} 是可取的,那么你可以通过以下方式实现(我将使用 Gson ):

JsonWriter jsonWriter = null;
try {
jsonWriter = new JsonWriter(new FileWriter("test.json"));
jsonWriter.beginObject();
jsonWriter.name("resource");
jsonWriter.beginArray();
jsonWriter.beginObject();
jsonWriter.name("name");
jsonWriter.value("Node1");
jsonWriter.endObject();
jsonWriter.endArray();
jsonWriter.name("literals");
jsonWriter.beginArray();
jsonWriter.beginObject();
jsonWriter.name("literal");
jsonWriter.beginArray();
jsonWriter.value("A");
jsonWriter.value("B");
jsonWriter.value("C");
jsonWriter.value("D");
jsonWriter.endArray();
jsonWriter.endObject();
jsonWriter.endArray();
jsonWriter.endObject();
} catch (IOException e) {
...
}finally{
try {
jsonWriter.close();
} catch (IOException e) {
...
}
}

关于java - 如何在 Java 中创建特定格式的 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com