Hei我是使用android的Web服务新手。我想知道如何检查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"
}
}
]
}
我想知道Michael Jordan是否存在于JSON中。请帮我这个我只知道如何检查对象是否存在于JSON使用has但是如果我想检查值?
答案 0 :(得分: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");
}
}
答案 1 :(得分: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;
}
答案 2 :(得分:0)
if(myJSONObject.has("name"))
{
//get the value
String* name=myJSONObject.getString("name");
if(name.equals("Michael Jordan"))
{
//do something
}
检查JSONObject doc:http://developer.android.com/reference/org/json/JSONObject.html#getString(java.lang.String)
答案 3 :(得分:0)
你不能只搜索字符串,因为json只是一个字符串吗?查看contains函数,否则查看gson,这将允许您将json序列化为对象