2

嘿,我是使用 android 的网络服务的新手。我想知道如何检查 JSON 中是否存在值?这是一个示例 JSON

{
   "contacts": [
     {
            "id": "c200",
            "name": "Michael Jordan",
            "email": "mj@gmail.com",
            "address": "xx-xx-xxxx,x - street, x - country",
            "gender" : "male",
            "phone": {
                "mobile": "+91 0000000000",
                "home": "00 000000",
                "office": "00 000000"
            }
     }
   ]
}

我想知道迈克尔乔丹的名字是否存在于 JSON 中。请帮我解决这个问题我只知道如何使用 has 检查对象是否存在于 JSON 中,但是如果我想检查该值怎么办?

4

4 回答 4

3

您需要将内容读入 JSONObject。然后你可以添加这个代码片段

JSONArray jsonArray = yourJSONObject.getJSONArray("contacts"); //here yourJSONObject is the object which has the array in your question.
for(int i = 0; i<jsonArray.length(); i++) {
 JSONObject jObject = jsonArray.getJSONObject(i);
 String name = jObject.getString("name");
 if(name.equals("Michael Jordan")) {
 System.out.println("Name Exists");
 }
}
于 2013-07-22T03:09:53.090 回答
2

不确定您需要解释什么扩展,但假设您已成功将输入流解析为JSONObject

public boolean isJordanHere(JSONObject root) {
    try {
        JSONArray contacts = root.getJSONArray("contacts");
        for(int i=0; i<contacts.length(); i++)
        {
            String name = contacts.getJSONObject(i).getString("name");
            if("Michael Jordan".equals(name))
            {
                return true;
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
        return false;
    }

    return false;
}
于 2013-07-22T03:02:19.977 回答
0
if(myJSONObject.has("name"))
{
//get the value
 String* name=myJSONObject.getString("name");
if(name.equals("Michael Jordan"))
{
 //do something
}

检查 JSONObject 文档: http: //developer.android.com/reference/org/json/JSONObject.html#getString(java.lang.String)

于 2013-07-22T02:59:19.520 回答
0

你不能只搜索字符串,因为 json 只是一个字符串吗?查看 contains 函数,否则查看 gson,这将允许您将 json 序列化为对象

于 2013-07-22T02:59:36.013 回答