#java #android #json #parsing
#java #Android #json #синтаксический анализ
Вопрос:
Мне нужна помощь. Правильный ли идентификатор пользователя. JSONObject — это
{
"info": {
"name": "Guest",
"age": "18"
}
}
Если идентификатор пользователя неверен. JSONObject — это
{
"info":"wrong"
}
Мой код:
if (!(resultObject.getString("info").contains("name"))) {
String strImg = resultObject.getString("info");
System.out.println("str response: " strImg);
} else {
JSONParse jsonParse = new JSONParse();
JSONObject json = new JSONObject(resultObject.getString("info"));
onSuccess(jsonParse.convertJsonToInformation(json));
}
Но не работает. Я не знаю, как это разобрать
Комментарии:
1. В ту же секунду, как вы запускаете getString, вы начинаете ее синтаксический анализ. Проверьте, существует ли
isString
метод или что-то еще (зависит от библиотеки JSON)
Ответ №1:
Я предлагаю вам использовать согласованный формат Json, а не использовать динамический формат. Таким образом, ваша обработка всегда будет одинаковой. Вы можете сначала проверить статус. Если статус «ок», вы можете использовать узел info Json.
Пример для получения правильной информации:
{
"status": "ok",
"info": {
"name": "Guest",
"age": "18"
}
}
Пример неверной информации:
{
"status": "wrong",
"info": null
}
Ответ №2:
JSONObject dataObject = new JSONObject(response).optJSONObject("info");
if(dataObject == null){
System.out.println("str response: " json.optString("info"));
} else {
JSONObject jsonSuccess = new JSONObject(json.getString("info"));
}