У меня есть JSONObject, который содержит вложенные JSONObjects. Мне нужно вытащить внутренние объекты и получить их ценности. Мой главный объект выглядит примерно так:Не удается преобразовать строку в JSONObject
{"result":"success",
"message":
{
"id":"1",
"first_name":"Tony",
"last_name":"Soprano",
"group":
"{
\"group_id\":\"1\",
\"group_name\":\"bada bing\"
}",
"email":"[email protected]"
}
}
Попытка доступа «группы» элементы, как это внутренний объект:
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? У меня полная потеря. Благодаря!
и почему PHP тега.? –
Поскольку объект json был создан в php, и это может иметь последствия с кодировкой UTF-8. Я отредактировал вопрос, чтобы объяснить это. Спасибо что подметил это. Хороший звонок. – Alex
@ usr55410 Недействительный JSON. –