我有一个带有标签的json" msg" 。现在,如果搜索结果显示在json中,则此标记不存在,当搜索结果为0时,此标记带有未找到的值。
现在我想检查一下这个标签是否存在。那么怎么做呢
以下是未找到记录时的json示例:
{"product":[{"msg":"Not Found"}]}
答案 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();
}