我将来自 Web 服务的响应解析为 JSONObject
,记录后,如下所示:
{"Preferences":"{Pref1=Apple, Pref2=Pear}"}
我了解如何要求 Preferences 标签,例如
jsonObject.get("Preferences")
。但是,我不明白我要返回什么对象,也不明白如何迭代它。如何遍历 jsonObject.get("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/