我想从json数组对象过滤中显示多个recyclerview

Posted

技术标签:

【中文标题】我想从json数组对象过滤中显示多个recyclerview【英文标题】:I want show multiple recyclerview from json array object filtering 【发布时间】:2021-06-04 03:15:15 【问题描述】:

在我的应用程序中,我有一个示例 JSON。我可以使用这个示例 JSON 创建 recyclerview。但我想要另一个使用这个示例 json 对象的 recyclerview。 为了更好地理解,请参阅下面的代码

示例.json

[

"Id": "1",
"Title": "Guardians of the Galaxy Vol. 2",
 "Year": 2017,
 "Runtime": "136 min",
 "Genre": "Sci-Fi",
  "Director": "James Gunn",
 ,
 
  "Id": "2",
  "Title": "Jhon wick",
  "Year": 2014,
  "Runtime": "148 min",
  "Genre": "Action",
  "Director": "James fosling",
   ,
   
   "Id": "3",
   "Title": "raid",
   "Year": 2016,
   "Runtime": "120 min",
    "Genre": "Action",
    "Director": "Chang Lee",
    
    ]

问题是我想要另一个使用 json 对象“流派”的 recyclerview。我的意思是在这个 json 数组中每个 json 数组有 6 个对象,然后我想使用流派创建一个新的 recyclerview。假设有三部电影,它显示一个 recyclerview。然后我想要一个新的 recyclerview,它只显示那些流派的电影“ action”。这意味着 jhon wick 和 raid 一起创建了一个新的 recyclerview。

我该怎么做?

【问题讨论】:

使用map创建组并显示到reyclerView中 请解释一下或者给我一些示例代码,谢谢 所以你想将动作类型对象过滤到另一个数组中? 是的,我想要。这个数组显示另一个recyclerview 【参考方案1】:

首先你必须解析这个 JSON, 并创建字符串列表,例如

List<String> genres = new ArrayList<>();

然后在解析 JSON 时,例如创建字符串的哈希映射和电影列表。

 HashMap<String, List<Movie>> response = new HashMap<>();

现在为您的 JSON 中的每个元素获取 Genre 键的值并检查该值是否显示在哈希映射中,

如果未显示,则在此键处获取列表并将当前电影添加到其中,然后将流派的值添加到流派列表。 如果值已经出现在哈希映射中,那么只需获取该键处的电影列表并将当前电影添加到其中。

您可以通过以下方式进行检查:

response.containsKey("value")
List<Movie> movies = response.get("value");

然后现在您可以将流派列表填充到另一个回收器视图,一旦用户从中选择元素,您就可以从响应哈希映射中获取电影列表并将其填充到电影回收器视图。

【讨论】:

以上是关于我想从json数组对象过滤中显示多个recyclerview的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JSON 的 Recycler 视图中显示特定类别

如何将json数据中的对象添加到nsmutablearray?

如何根据使用角度 7 中的键的条件检查来过滤 json 响应中的数组

Vue JS按多个数组对象项过滤

如何在mongodb的单个json文档中过滤对象数组? [复制]

从 JSONB 列中的多个数组中过滤掉对象