【问题标题】:Android JSONObject : Search functionAndroid JSONObject:搜索功能
【发布时间】:2014-07-25 23:27:53
【问题描述】:

我正在尝试从预先收到的 JSON 代码中搜索..

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

我已成功解析 JSON,并将其存储在我的 String 变量中。 JSON 包含对象数组..

现在我想搜索特定的 ObjectName 并获取整个对象.. JSON 就像

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

我想搜索 name = "hello" 并获取最后一个返回的数组

谁能告诉我怎么做?

非常感谢!

【问题讨论】:

  • 更具体地说明你想做什么..
  • @Prag's 谢谢我已经编辑了这个问题。你能帮我吗?

标签: android json search jsonobject android-json


【解决方案1】:

你可以这样使用:

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

【讨论】:

  • 不推荐用于大型 JSONArray。想象一个包含 10k 条记录的数组,其中您的针恰好是最后一条记录 :-)
【解决方案2】:

对于大数据,你不能在每个元素中都使用搜索,想象你有 50K 用户你不能在每个 50k 标题中搜索来找到你的元素我建议你到后端 - Web 开发人员 - 这样做会更容易给你,更快,你怎么能做到这一点? 你只需要一个空格来传递 JSON Url 中的搜索文本,然后发布它并从他那里检索搜索到的数据

【讨论】:

    【解决方案3】:

    尝试使用带有 (PHP) 的网络服务器,并像这样在 GET 中设置您的搜索元素。

    然后 php 搜索功能将为您提供搜索所需的完整 Json。您也可以像这样为此搜索设置分页。

    【讨论】:

    • PHP AF 很慢。
    猜你喜欢
    • 2017-09-21
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    相关资源
    最近更新 更多