检查字符串或JSONObject

时间:2019-04-05 04:06:54

标签: java android json parsing

我需要帮助。 如果userID是正确的。 JSONObject是

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

如果userID错误。 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 个答案:

答案 0 :(得分:2)

我建议您使用一致的Json格式,而不要使用动态格式。因此,您的处理将始终相同。您可以先检查状态。如果状态为“ ok”,则可以使用info Json节点。

正确信息示例:

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

有关错误信息的示例:

{
  "status": "wrong",
  "info": null
}

答案 1 :(得分:0)

解决方案::您可以使用optJSONObjectoptString方法来检测JSON密钥的值是JSON对象还是字符串。

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

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

}

答案 2 :(得分:0)

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