【问题标题】:Search from a list of JSON objects with SearchDelegate Flutter使用 SearchDelegate Flutter 从 JSON 对象列表中搜索
【发布时间】:2020-06-11 02:43:52
【问题描述】:

我想从本地 JSON 对象列表中搜索字符串。它包含每个月和这些月中的几周的数据,如下所示:

[
 {
    "month": "January",
    "weeklyList": [
      {
        "weekId":1,
        "songName" : "some text",
        "songDescription" : "some text",
        "bookChapter":"some text"       
      }
     ]
    }
]

我已经实现了解析和填充列表视图所需的方法。正如您在图片上看到的那样,我在主屏幕上有一个月份列表,并使用它们的索引来专门解析给定月份的数据,当用户单击它以导航到填充每周列表的第二个屏幕时,这工作正常。

我在 Flutter Boring 节目中观看了 SearchDelegate 如何工作,但我不知道如何为我的 JSON 实现它。如果输入的字符串在“weeklyList”数组中的一个值中,我想搜索并显示一个建议列表。我很困惑,因为我将在主屏幕上搜索整个 JSON 而不使用索引。 Screenshot image

我知道我应该使用这样的东西:

snapshot.data.where((filterString) => 
(filterString.songName.contains(query) || (filterString.songDescription.contains(query))));

但不知道该怎么做。对于起点的任何建议,我将不胜感激。

提前谢谢你!

【问题讨论】:

    标签: json flutter dart


    【解决方案1】:

    我会分两步解决你的问题:

    1. 将JSON 中的所有数据模型解析为List<WeeklyItem>
    2. 使用来自SearchDelegate 的查询过滤结果列表

    有道理吗?

    【讨论】:

      猜你喜欢
      • 2019-12-12
      • 2020-07-26
      • 2019-06-28
      • 2020-05-08
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多