android - 遍历 JSONObject

标签 android json

我将来自 Web 服务的响应解析为 JSONObject,它在记录时如下所示:

{"Preferences":"{Pref1=Apple, Pref2=Pear}"}

我知道如何请求 Preferences 标签,例如jsonObject.get("首选项")。但是,我不明白我要返回什么对象,也不知道如何迭代它。如何遍历 jsonObject.get("Preferences") 返回的对象?

最佳答案

preferences 返回的对象是一个String。如果您想遍历 Preferences 的子项,您可能需要更改结构,例如:

{"Preferences":{"Pref1":"Apple", "Pref2":"Pear"}}

然后像这样解析它:

JSONObject inputJSON = new JSONObject("{\"Preferences\":{\"Pref1\":\"Apple\", \"Pref2\":\"Pear\"}}");
JSONObject preferencesJSON = inputJSON.getJSONObject("Preferences");
Iterator<String> keysIterator = preferencesJSON.keys();
while (keysIterator.hasNext()) 
{
        String keyStr = (String)keysIterator.next();
        String valueStr = preferencesJSON.getString(keyStr);
}

或者,如果您想保留您的结构,您可以像这样通过 Preferences 对象解析返回的字符串:

JSONObject inputJSON = new JSONObject("{\"Preferences\":\"{Pref1=Apple, Pref2=Pear}\"}");
String preferencesStr = inputJSON.getString("Preferences");
JSONObject preferencesJSON = new JSONObject(preferencesStr);
Iterator<String> keysIterator = preferencesJSON.keys();
while (keysIterator.hasNext()) 
{
        String keyStr = (String)keysIterator.next();
        String valueStr = preferencesJSON.getString(keyStr);
}

关于android - 遍历 JSONObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17834972/

相关文章:

python - 根据 ID 将 JSON 文件拆分为多个 JSON?

java - 用于 JSON 的 jQuery

android - 反编译Android apk

java - Android 应用程序在 LoginActivity 之前显示屏幕

java - 接口(interface)中的 Pojo

json - 如何将 json 数据提供给 nvd3 图形代码

python - 如何在 python 中向空 JSON 添加元素?

java - 如何获取最后一张照片的文件名/uri?

java - 将捕获的图像从 Camera2 Api 传递到另一个 Activity

java - Android 上两个应用程序之间的套接字通信