繁体   English   中英

解析迭代 JSON 从 Firebase 到 Flutter

Parsing Iterative JSON from Firebase to Flutter

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

如图所示,我将数据作为迭代 JSON 保存到实时 Firebase 中。

实时 Firebase 数据

[
  {
    "name": "Math",
    "subMenu": [
      {
        "name": "Math1",
        "subMenu": [
          {
            "name": "Math 1.1"
          },
          {
            "name": "Math 1.2",
            "subMenu": [
              {
                "name": "Math 1.2.1",
                "subMenu": [
                  {
                    "name": "Math 1.2.1.1"
                  },
                  {
                    "name": "Math 1.2.1.2"
                  }
                ]
              },
              {
                "name": "Math 1.2.2"
              }
            ]
          }
        ]
      },
      {
        "name": "Math2"
      },
      {
        "name": "Math3",
        "subMenu": [
          {
            "name": "Math 1.3.1"
          },
          {
            "name": "Math 1.3.2"
          }
        ]
      }
    ]
  },
  {
    "name": "Marketing",
    "subMenu": [
      {
        "name": "Promotions",
        "subMenu": [
          {
            "name": "Catalog Price Rule"
          },
          {
            "name": "Cart Price Rules"
          }
        ]
      },
      {
        "name": "Communications",
        "subMenu": [
          {
            "name": "Newsletter Subscribers"
          }
        ]
      }
    ]
  }
]

JSON 在实时中的样子 Firebase '点击图片'

数据模型.dart

class Menu {
  String? name;
  int? font;
  List<Menu>? subMenu = [];

  Menu({this.name, this.subMenu, this.font});

  Menu.fromJson(Map<String, dynamic> json) {
    font = json['font'];
    name = json['name'];

    if (json['subMenu'] != null) {
      json['subMenu'].forEach((v) {
        subMenu?.add(Menu.fromJson(v));
      });
    }
  }
}

我的目标是在 Flutter 中构建一个反映迭代 JSON 结构的多级列表视图。 因此,我实现了一个返回List<Menu>的方法,然后将其传递给Futurebuilder以构建多级列表视图。

方法。

final ref = FirebaseDatabase.instance.ref();

  Future<List<Menu>> firebaseCalls(DatabaseReference ref) async {
    final snapshot = await ref.child('Task').get();
    final jsondata = snapshot.value as Map<String, dynamic>;
    final list = json.decode(jsondata) as List<dynamic>; // Error Location
    return list.map((e) => Menu.fromJson(e)).toList();
  }

我得到了以下

错误error: The argument type 'Map<String, dynamic>' can't be assigned to the parameter type 'String'. (argument_type_not_assignable at [flutter_multilevel_list_from_json] lib\main.dart:28) error: The argument type 'Map<String, dynamic>' can't be assigned to the parameter type 'String'. (argument_type_not_assignable at [flutter_multilevel_list_from_json] lib\main.dart:28)

试图将列表类型更改为List<dynamic>但仍然给我一个错误。

2 个回复

json.decode()将字符串作为输入,并且您将Map<String,dynamic>传递给它。

那是您的问题,而不是您要尝试将其转换为List<dynamic>

可能这会有所帮助(jsondata as List).map((e) => Menu.fromJson(e)).toList();

1 Flutter 从 rest API 解析 .JSON

我需要帮助从在线 API 解析 Json 对象。 我是 flutter 的新手,我不太了解它的方法,而且似乎没有很多在线资源。 这是 JSON 的样子: 我已经编写了这些类,但我不太知道接下来要做什么: 我也必须全部解析吗? 或者有没有办法只使用数据。 ...

2 解析/迭代Json

我对使用C#解析Json相当陌生,但是我遇到了一个小问题,我无法解决。 我的数据如下所示: 现在,我想遍历语言中的项目,并且仅使用对象名称以“ ja_”开头的对象(在这种情况下,它将仅使用“ ja_lang”而不使用“ en_lang”),然后在其中提取名称数据和文件中的“ lan ...

3 迭代地解析JSON文件

我有1000多个JSON文件,看起来像 { "name": "Some name", "part_num": "123456", "other_config": { // Large amount of objects }, "some ...

4 扑从firebase解析JSON

我刚刚开始学习颤振并尝试使用ScopedModel,并且陷入了解析JSON的困境,直到我尝试获取详细信息模拟列表,一切都可行,但我尝试的一切都失败了 这是我的项目和模拟课程 我制作了一个单独的课程来获取详细的模拟信息 这是我从firebase获得的JSON示例 我做了 ...

5 迭代对象Firebase的JSON对象

我正在使用firebase4j(Java的firebase库,我知道最好使用node,我只是想尝试用Java来做)。 在我的数据库中,我需要使用一堆图片信息来保存图片的网址。 事实是,图片网址本身已深入JSON 这就是为什么我试图为按分数排序的图片创建索引,其中包含指向Firebas ...

6 Flutter :- 如何从 Flutter 中的模型类解析 JSON?

我正在像下面的代码一样从键和值解析 JSON 有没有其他方法可以像我们在Android那样解析 Model 类中的 JSON,请查看下面的示例。 我已经提到了这个链接,但没有得到解决方案,请检查以下内容:- 1)。 关联 2)。 关联 3)。 关联 这是我的 JSON 响应 我已经尝试 ...

7 Flutter 中复杂的 JSON 解析

我需要在我的应用程序中创建一张卡片,但我的应用程序是一个新闻应用程序并从具有 JSON API 的网站调用我的数据,我尝试检索应用程序崩溃的新闻图像并给出一条消息: 图像资源服务捕获的异常在解析图像编解码器时引发了以下 ArgumentError:无效参数:在 URI 文件中未指定主机:/// ...

8 flutter:嵌套的json解析列表

我试图从我的 json 代码中调用 Name 和 Fees 它是来自我的 json 主数组的嵌套数组我可以处理它的主数组但是我不能处理它的子数组 我不能这样做,因为当我尝试调用“名称”和“费用”时出现错误 这是我的课程,用于映射导游数据以在列表视图中使用它 这是一个额外的服务类,导游类依 ...

9 将 JSON 解析为 Flutter 中的 model

我有一些数据存储在 JSON 中,我正在尝试将 map 存储到它各自的 model ZA2F2ED2F8EBC2CBBDZC21。 我想要 map answer question ,但是当它们嵌套在一个数字上时,我该如何实现呢? 通常我会创建另一个父类别的 model class 但是当父类别没有 ...

10 在 Flutter 中解析 Json 日期

我一直在为我的学生协会制作一个应用程序,并将它与日历 api 相关联。 我的问题是开始时间是 Json 格式。 目前我已经像这样导入了它 我知道有一种简单的方法可以将 html 解析为正常,但这也可以使用 json 吗? 目前我的日期时间如下所示:{datetime:2020-05-13T19 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM