android - 如何在 JSON 中搜索并在 Activity 中返回搜索结果

标签 android json

我正在我的 Activity 中解析 JSON 以在 gridView 中显示文本和图像。但是我想尝试添加搜索功能 在此 JSON 上并在 Activity 上显示结果。

例如,考虑在线服务器上的 JSON 脚本,如下所示:

[
    {
        "title": "Ongata Rongai",
        "image": "http://snapt.t15.org/melanie/real_estates/images/house1.jpg",
        "rating": 5 500 000,
        "releaseYear": 2014,
        "genre": ["Spacious open lounge and kitchen"]
    },
	{
        "title": "Kisumu",
        "image": "http://snapt.t15.org/melanie/real_estates/images/house2.jpg",
        "rating": 1 700 000,
        "releaseYear": 2014,
        "genre": ["high end townhouse."]
    },
	{
        "title": "Mombasa",
        "image": "http://snapt.t15.org/melanie/real_estates/images/house3.jpg",
        "rating": 68 000,
        "releaseYear": 2014,
        "genre": ["Its fully fitted kitchedn pantry with a beautyful backyard."]
    }
  ]

我想像Kisumu一样实现title的搜索,并且要显示的结果将仅来自这部分,以便我单独解析它:

[
	{
        "title": "Kisumu",
        "image": "http://snapt.t15.org/melanie/real_estates/images/house2.jpg",
        "rating": 1 700 000,
        "releaseYear": 2014,
        "genre": ["high end townhouse."]
    }
  ]

有没有办法实现上述目标?

我愿意接受想法和建议,任何帮助将不胜感激。

最佳答案

不能直接搜索json。将 json 转换为 List Java 类。然后使用Java API,如 Predicate找到满足您条件的必要java类。对于例如:标题为Kusumu,正如您所要求的。

这会将类列表限制为满足条件的类列表。如果需要 Json,则将 java 类转换回 json。

注意:您可以使用GSON方便class <-> json转换

更新

用于将 Json 转换为 Java 类

List<ModelClass> models = new Gson().fromJson(yourJsonString, ModelClass.java);

然后使用谓词

public static Predicate<ModelClass> isHavingTitle() {
    return p -> p.getTitle().contains("Kusumu");
}

在 Java 8 中谓词过滤可以像下面这样完成,在其他情况下你可以直接用 google 搜索它。这是一个示例

public static List<ModelClass> filterEmployees (List< ModelClass > models, Predicate< ModelClass > predicate) {
    return models.stream().filter( predicate ).collect(Collectors.<ModelClass>toList());
}

我没有编译任何这些:)

String filteredJson = new Gson().toJson(models);

关于android - 如何在 JSON 中搜索并在 Activity 中返回搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31146305/

相关文章:

android - RuntimeException : API key not found. 检查 geo.API_KEY 是否在 AndroidManifest.xml 中

php - Json 不会在 php 中响应我的数组

javascript - 将逗号分隔的字符串下载为 csv

Java:有关可运行的帮助

android - 如何在 Android 上关闭屏幕?

c# - 如何将 NameValueCollection 转换为 JSON 字符串?

JavaScript 解析 JSON 并从中创建键值数组

json - Flask TypeError 'is not JSON serializable'-嵌套字典

Android 表格布局宽度

android - 如何在点击推送通知时打开新 Activity ?