我有一个包含嵌套 JSONObjects 的 JSONObject。我需要拉出内部对象并获取它们的值。我的主要对象看起来像这样:
{"result":"success",
"message":
{
"id":"1",
"first_name":"Tony",
"last_name":"Soprano",
"group":
"{
\"group_id\":\"1\",
\"group_name\":\"bada bing\"
}",
"email":"tony.soprano@gmail.com"
}
}
尝试像这样访问内部对象“组”元素:
private void jsonToSharedPreferences(String jsonMessage) throws JSONException {
System.err.println(jsonMessage); //<--output looks perfect
JSONObject user = new JSONObject(jsonMessage);
String strGroup = user.getJSONObject("group").toString().substring(3);
JSONObject group = new JSONObject(strCoach.substring(strGroup.indexOf("{"), strGroup.lastIndexOf("}") + 1));
System.err.println(group.get("group_name").toString());
}
所有子字符串内容的原因是我发现有关此问题的帖子表明存在一些 UTF-8 编码(来自创建对象的 PHP)隐藏字符串开头的三个字符。我已经尝试过使用和不使用子字符串的代码。我得到相同的结果。
不幸的是,无论我做什么,我都会收到此错误:
org.json.JSONException: Value {"group_id":"1","group_name":"bada bing"} at group of type java.lang.String cannot be converted to JSONObject
有谁知道为什么我的对象可以完美地输出为字符串,但是当我尝试将其转换为 JSONObject 时却失败了?我完全不知所措。谢谢!