gpt4 book ai didi

java - 如何使用 Java 创建格式化的 json?

转载 作者:行者123 更新时间:2023-12-02 00:25:13 25 4
gpt4 key购买 nike

因此给定这些任意变量

String name = "bob";
List<String> hobby = new ArrayList<String>();
hobby.add("walk");
hobby.add("gym");
hobby.add("football");

如何输出字符串 json?上面的例子

{
"name": "bob",
"hobby": [
"walk",
"gym",
"football"
]

}

我尝试过 JSONObject json = new JSONObject();但这样它就没有按照我想要的方式正确格式化。

最佳答案

据我所知,您必须自己处理列表 - 爱好 - 才能用换行符打印它。但借助 Gson(Google Gson),您可以按预期打印它们,如下所示。

JSONObject jsonObj = new JSONObject();
jsonObj.put("name", name);
jsonObj.put("hobby", hobby);

JsonParser parser = new JsonParser();
JsonObject json = parser.parse(jsonObj.toString()).getAsJsonObject();
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(json));

然后控制台输出将是

{
"name": "bob",
"hobby": [
"walk",
"gym",
"football"
]
}

已更新

如果你在Jackson2库中使用writerWithDefaultPrettyPrinter(),似乎不会像Gson那样打印Json数组。

ObjectMapper mapper = new ObjectMapper();
Object jsonObj1 = mapper.readValue(jsonObj.toString(), Object.class);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonObj1));

控制台输出:

{
"name" : "bob",
"hobby" : [ "walk", "gym", "football" ]
}

关于java - 如何使用 Java 创建格式化的 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58054900/

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