Проверьте строку или JSONObject - PullRequest
1 голос
/ 05 апреля 2019

Мне нужна помощь.Если ID пользователя правильный.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));
}

Но не работает.Я не знаю, как разобрать это

Ответы [ 3 ]

2 голосов
/ 05 апреля 2019

Я предлагаю вам использовать согласованный формат Json, а не использовать динамический формат.Таким образом, ваша обработка будет всегда одинаковой.Вы можете сначала проверить статус.Если статус «ок», вы можете использовать информационный узел Json.

Пример правильной информации:

{
  "status": "ok",
  "info": {
    "name": "Guest",
    "age": "18"
  }
}

Пример неверной информации:

{
  "status": "wrong",
  "info": null
}
0 голосов
/ 08 апреля 2019
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"));
            }
0 голосов
/ 05 апреля 2019

Решение: Вы можете использовать метод optJSONObject и optString, чтобы определить, является ли значение ключа JSON объектом JSON или строкой.

if(resultObject.optJSONObject("info") != null) {
    // info is a JSON Object.

} else if (resultObject.optString("info") != null) {
    // info is a String.

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...