2015-05-21 26 views
-2

我有一個標籤爲「msg」的json。現在,如果搜索結果顯示在json中,那麼這個標記不存在,當搜索結果爲0時,這個標記帶有未找到的值。如何在json中找到任何標籤

現在我想檢查一下這個標籤是否存在。因此,如何做到這一點

這裏是JSON的樣品時沒有發現記錄:

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

請發佈您的JSON樣本。 –

+0

@bidhan ,,更新。我需要檢查是否存在json響應中的「msg」標記 – nanoweb

+1

你想讓它與android一起工作嗎?看到這裏http://stackoverflow.com/questions/17487205/how-to-check-if-a-json-value-exists – inquisitive

回答

0

您可以檢查是否存在使用映射到optString密鑰值()。如果沒有這樣的密鑰,它將返回一個空字符串。如果該值不是一個字符串並且不爲空,則將其轉換爲一個字符串。如果沒有相應的鍵,使用getString()會給出一個JSONException。

jsonObject.optString("msg") 

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

+0

not working.org.json.JSONException:類別沒有值 – nanoweb

+0

您是否嘗試過在使用getString()的地方使用過optString()?你可以發佈你使用'category'的JSON部分嗎? – dishooom

+0

好的,但映射是標記任何標記的權利?但如果標籤本身不存在,那麼我們如何檢查映射?..糾正我,如果我錯了 – nanoweb

-1

試試這個方法:

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

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

這也是拋出異常爲json.getString(「msg」),這個標記「msg」不存在 – nanoweb

1

先勾選 「MSG」 標籤persent或者沒有,那麼你必須檢查字符串

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(); 
} 
+0

映射是標記一個值給任何標籤的權利?但如果標籤本身不存在,那麼我們如何檢查映射?..糾正我,如果我錯了 – nanoweb

+0

請先檢查我的答案我已檢查標籤本身存在與否然後我們檢查消息。 –

+0

現在檢查我已更新我的代碼 –

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(); 
} 
+1

我想這會拋出一個錯誤cz標籤本身不存在。一世。e msg,您正在嘗試獲取其值 – nanoweb

+0

@nanoweb現在查看解決方案... –

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 
    } 
} 

這無疑將有所幫助。