如何在json中找到任何标签

时间:2015-05-21 04:43:52

标签: android json

我有一个带有标签的json" msg" 。现在,如果搜索结果显示在json中,则此标记不存在,当搜索结果为0时,此标记带有未找到的值。

现在我想检查一下这个标签是否存在。那么怎么做呢

以下是未找到记录时的json示例:

{"product":[{"msg":"Not Found"}]}

5 个答案:

答案 0 :(得分:1)

首先检查" msg"标签是否有效,那么你必须检查字符串

try {

     if(yourjsonObject.has("msg")){ 
    {
                  if (json.getString("msg").equals("Not Found")) {  
                  // do some thing
                  }
                  else{
                  // do some thing else  
                  }
    }
   } catch (JSONException e) {
         e.printStackTrace(); 
 }

答案 1 :(得分:1)

请检查以下解决方案

try 
{ 
JSONObject obj=new JSONObject(respons);//respons is the response of the yours web sevice
JSONArray inner_json_array = obj.getJSONArray("product");
for(int j=0;j<inner_json_array.length();j++) {
   if(inner_json_array.getJSONObject(j).has("msg"))
    {
     String msg= inner_json_array.getJSONObject(j).getString("msg");
      if (msg.equals("Not Found")) {
      // do some thing
        }
      else{
      // do some thing else  
      }
    }
  }     
 } catch (JSONException e) {
        e.printStackTrace(); 
}   

答案 2 :(得分:0)

您可以使用optString()检查是否有值映射到键。如果没有这样的键,它返回一个空字符串。如果该值不是字符串且不为null,则将其转换为字符串。如果没有相应的密钥,则使用getString()将给出JSONException。

jsonObject.optString("msg")

http://developer.android.com/reference/org/json/JSONObject.html#optString(java.lang.String)

答案 3 :(得分:0)

您的完整解决方案将是这样的

JSONObject obj=new JSONObject(response);//This is response from webservice
JSONArray json_array = obj.getJSONArray("product");
for(int j=0;j<json_array.length();j++) {
    if(json_array.getJsonObject(j).has("msg")) {
     // if found
    } else {
     // if not found
    }
}

这肯定会有所帮助。

答案 4 :(得分:-1)

尝试这种方式:

try {
          if (json.getString("msg").compareTo("Not Found") == 0) {
          // do some thing
          }
          else{
          // do some thing else  
          }

      } catch (JSONException e) {
            e.printStackTrace(); 
      }