Android JSONObject:搜索功能

3

我正在尝试搜索之前接收到的JSON代码。

我想知道是否有有效的方法来搜索特定对象?或者我应该使用直接的搜索,比如循环和if语句?

我已经成功解析了JSON,并将其存储在我的字符串变量中。JSON包含对象数组。

现在我想搜索特定的ObjectName并获取整个对象。JSON将会像这样:

   [
     {
         "name":"blank",
         "date":"2014-06-05T00:44:30Z",
         "boolean":null,
     },
     {
         "name":"hello",
         "date":"2013-05-04T00:43:20Z",
         "boolean":null,
     }
   ]

我想要查找名称为“hello”的最后一个数组,并获得返回结果。有人可以向我展示吗?非常感谢!

2
请更具体地说明您想要做什么。 - Pragnesh Ghoda シ
@Prag的,谢谢,我已经编辑了问题。你能帮我吗? - AlbertSamuel
3个回答

7
您可以使用这样的东西:
String name;
JSONObject searchObject;

JSONArray array = new JSONArray(yourJsonString);

for (int i = 0; i < array.length(); i++) {
    JSONObject currObject = array.getJSONObject(i);
    name = currObject.getString("name");

    if(name == "hello")
    {
       searchObject = currObject        
    }
}

return searchObject

2
不建议使用大的JSONArray。想象一下,一个包含10k条记录的数组,而你要查找的针恰好是最后一条记录 :-) - DLastCodeBender

0

对于大数据,您不能在每个元素中使用搜索。想象一下,如果您有50K个用户,您无法在每个50k标题中搜索以找到您的元素。我建议您让后端 - Web开发人员 - 来做这件事,这样会更容易且更快速。您如何做到这一点呢?您只需要在JSON Url中传递搜索文本的空间,然后将其发布并从中检索搜索数据即可。


0

尝试使用带有(PHP)的Web服务器,并将您的搜索元素设置为GET,如下所示。

然后,PHP搜索函数将为您提供所需的完整Json搜索结果。此外,您还可以像这样设置此搜索的分页。


PHP太慢了。 - bonny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接