gpt4 book ai didi

java - 返回 JSONArray 中键值对的字符串表示形式

转载 作者:行者123 更新时间:2023-11-30 07:55:25 28 4
gpt4 key购买 nike

    for (int i = 0; i < jsonArray.length(); i++){
System.out.println(jsonArray.getJSONObject(i));
System.out.println(jsonArray.getJSONObject(i).names());
}

将打印对,然后打印单个对象,例如

{"key1":"a"}
["key1"]
{"key2":"b"}
["key2"]
{"key3":"c"}
["key3"]
{"key4":"d"}
["key4"]
...
{"keyn":"end"}
["keyn"]

我希望 for 循环能够分别获取每个对象的键和值的字符串解释。

我一直在搜索JSONObject API但我似乎找不到可以做到这一点的方法。如果您知道键的名称,则可以轻松获取值的名称:

jsonObject.getString(whenYouKnowTheKeyName));

但是当我循环遍历数组时,我假设我两者都不知道。我希望得到

key1
a
key2
b
key3
c
key4
d
...

作为输出。我正在尝试读取已创建的 JSON 对象,而不是创建新对象。

最佳答案

假设 jsonArray 中的对象始终仅包含一个键,则以下内容应根据需要打印每个对象中的键和值:

for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Iterator<String> keys = jsonObject.keys();
String key = keys.next();
Object value = jsonObject.get(key);
System.out.println(key);
System.out.println(value);
}

但是,您可能希望通过将每个键和值包装在 while (keys.hasNext()) 迭代器循环中来处理所有对象的所有键:

for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
Object value = jsonObject.get(key);
System.out.println(key);
System.out.println(value);
}
}

根据您的示例,两种解决方案具有相同的输出,但显然后者更灵活。

关于java - 返回 JSONArray 中键值对的字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746141/

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