gpt4 book ai didi

java - 如何使用 org.json 库从 Java 中的 JSON 文件中获取每个键和值?

转载 作者:行者123 更新时间:2023-12-02 08:40:55 29 4
gpt4 key购买 nike

我已经到处寻找,但仍然找不到解决我的问题的方法。如果已经发布了帖子,请告诉我,以便我可以访问它。我看过类似的帖子,但是他们遵循的 JSON 格式与我的不同,所以我想看看是否可以以及如何使用下面将介绍的 JSON 格式来实现它。

基本上,我想做的是获取 JSON 文件中的每个元素,并检索每个元素的键名称和值。键和值都是字符串值。下面是一个 JSON 示例,展示了我希望 JSON 代码的外观:

{
"Variable1":"-",
"Variable2":" Test "
}

我正在使用 org.json 库,我想知道这是否可行,如果可行,我该如何实现?我最初尝试做的是将变量放在名为“Variables”的数组下,但每次我尝试获取该数组时,都会出现错误,指出 JSONObject["Variables"] 不是 JSONArray。不确定这是由于 JDK 中的问题还是由于我的代码中的问题引起的。当然,这是在另一个线程中讨论的事情。到目前为止,这就是我所拥有的(FilePath 是一个字符串变量,其中包含文件的完整路径):

String Contents = new String((Files.readAllBytes(Paths.get(FilePath))));
JSONObject JsonFile = new JSONObject(Contents);
JSONArray VariableList = JsonFile.getJSONArray("Variables");
for (Object Item: VariableList) {
Map.Entry Item2 = (Map.Entry)Item;
System.out.println("Key: " + Item2.getKey() + ", Value: " + Item2.getValue());
}

如果 JSON 看起来像这样,上面的代码应该可以工作(是的,我说应该,因为它不起作用):

{
"Variables": {
"Variable1":"-",
"Variable2":" Test "
}
}

如果可能的话,我如何才能使用第一个 JSON 格式获取键和值?如果不可能,那么我将如何以替代方式做到这一点?请记住,键名称永远不会相同,因为键和值将根据用户想要的内容而有所不同,因此这就是为什么能够循环遍历每个元素并获取两者非常重要这是关键和值(value)。

感谢您投入的时间和精力。

最佳答案

"Variables": { ... }JSONObject 而不是 JSONArray

对于包org.json

try {
String contents = "{\"Variables\":{\"Variable1\":\"-\",\"Variable2\":\" Test \"}}";
JSONObject jsonFile = new JSONObject(contents);
JSONObject variableList = jsonFile.getJSONObject("Variables"); // <-- use getJSONObject
JSONArray keys = variableList.names ();
for (int i = 0; i < keys.length (); ++i) {
String key = keys.getString(i);
String value = variableList.getString(key);
System.out.println("key: " + key + " value: " + value);
}
} catch (Exception e) {
e.printStackTrace();
}

对于包JSON.simple

String contents = new String((Files.readAllBytes(Paths.get(FilePath))));
JSONObject jsonFile = new JSONObject(contents);
JSONObject variableList = jsonFile.getJSONObject("Variables"); // <-- use getJSONObject
variableList.keySet().forEach(key -> {
Object value = jsonObj.get(key);
System.out.println("key: "+ key + ", value: " + value);
});

关于java - 如何使用 org.json 库从 Java 中的 JSON 文件中获取每个键和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61395073/

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