Проверка строки или JSONObject

#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"));
            }