【发布时间】:2022-08-10 00:02:02
【问题描述】:
我将 json 字符串读入 java 中的 JSONObject。 json-String 变化:
这是一个json:
{\"menu\": {
\"id\": \"file\",
\"value\": \"File\",
\"popup\": {
\"menuitem\": [
{\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},
{\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},
{\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}
]
}
}}
如果我在 5 分钟后得到它,这也是一样的:
{\"menu\": {
\"id\": \"file\",
\"popup\": {
\"menuitem\": [
{\"master\": \"New\", \"onclick\": \"CreateNewDoc()\"},
]
}
}}
json 的结构与第一个不同。我无法更改服务器端。这是在项目中给出的。
所以我喜欢在不知道键的情况下创建存储在 json 中的所有值的列表:
Key, Value
menu-id, file
menu-value, File
menu-popup-menuitem-0-value, New
menu-popup-menuitem-0-onclick, CreateNewDoc
...
但是如果我使用 JSONObject 我必须知道密钥。我没有找到任何循环遍历所有元素的功能?
有人可以帮忙吗?
这是我的代码:
Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), \"UTF-8\"));
StringBuilder sb = new StringBuilder();
for (int c; (c = in.read()) >= 0;)
sb.append((char)c);
String response = sb.toString();
JSONObject json_response = new JSONObject(response);
how to loop throug json_response to get each key/value and check if it has elements below????