【问题标题】:How to filter JSON results如何过滤 JSON 结果
【发布时间】:2021-06-10 01:12:44
【问题描述】:

我有一个产品,我想在其中输出相同的数据表。我必须使用“id”过滤此表。

我正在尝试在 fetchNotes() id = "XPTO68" 上过滤此 json。

有什么想法吗?

{
   "segmento": "Caminhões e Ônibus",
   "montadora": "MONTADORA",
   "veiculo": "7000",
   "motor": "MWM 4.10T",
   "anoinicial": "1994",
   "anofinal": "2005",
   "id": "XPTO68",
   "obs": "Engrenagem 15°",
   "descricao": "Bomba D´Água",
   "imagem": "XPTO6*.png"
 },
 {
   "segmento": "Caminhões e Ônibus",
   "montadora": "MONTADORA",
   "veiculo": "7000",
   "motor": "MWM 4.10T",
   "anoinicial": "1994",
   "anofinal": "2005",
   "id": "XPTO69",
   "obs": "Engrenagem 15°",
   "descricao": "Bomba D´Água",
   "imagem": "XPTO69.png"
 },

我该怎么办?

Future<List<Note>> fetchNotes() async {
    var data = await DefaultAssetBundle.of(context)
        .loadString('assets/json/produtos.json');
    var body = json.decode(data);
    var notes = List<Note>();
    for (var noteJson in body) {

      notes.add(Note.fromJson(noteJson));
    }
    return notes;   }

【问题讨论】:

    标签: json flutter filter


    【解决方案1】:

    只需将您需要过滤的 id 传递给您的函数并签入循环:

    Future<List<Note>> fetchNotes({List<String> filterIds = const []}) async {
        var data = await DefaultAssetBundle.of(context)
            .loadString('assets/json/produtos.json');
        var body = json.decode(data);
        var notes = List<Note>();
        for (var noteJson in body) {
          final note = Note.fromJson(noteJson);
          if (filterIds.contains(note.id))
            continue;
          notes.add(note);
        }
        return notes;   
      }
    

    然后调用这个函数:

    final notes = await fetchNotes(filterIds: ["XPTO68"]);
    

    【讨论】:

    • 感谢 Autocrab。但是“Future> fetchNotes({List filtersIds = []}) async {” lib/product_screen.dart(25,60): error G1F97C9AE: Constant expression expected.
    • 我正在尝试使用 @override void initState() { super.initState(); var _notesForDisplay = fetchNotes(filterIds: [note.id]);在这里使用: rows: _notesForDisplay .map((data) => DataRow(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2020-08-13
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    相关资源
    最近更新 更多