flutter - 方法 '[]' 在 null 上调用(解析 json)

Muh*_*din 6 api android json flutter

如何使用这样的 Json 结构制作“模型”? 看图片

-- 之前,我尝试以另一种形式解析 json 并且它起作用了,当我尝试为上面的 json 制作结构时,如下所示:

class HomeTeam {
  final int id, legacyId, name, countryId;
  final bool nationalTeam;
  final String logoPath;

    HomeTeam({this.id, this.legacyId, this.name, this.countryId, this.nationalTeam, this.logoPath});

    factory HomeTeam.fromJson(Map<String, dynamic> json){
      return HomeTeam(
          id: json['id'],
          legacyId: json['legacy_id'],
          name: json['name'],
          nationalTeam: json['national_team'],
          logoPath: json['logo_path']
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

.

homeTeam: HomeTeam.fromJson(json['localTeam']['data']),
Run Code Online (Sandbox Code Playgroud)

然后结果出现错误..

NoSuchMethodError: 在 null 上调用了方法“[]”。E/flutter(220):接收器:null E/flutter:尝试调用:

如何解决这个问题呢?

cbr*_*ken 13

错误消息NoSuchMethodError: The method '[]' was called on null.告诉您您已经[]在 null 上调用了 index ( ) 运算符。

如果您的问题中没有简化的代码示例和 JSON 数据,或者没有指向代码中特定行的堆栈跟踪,则很难判断哪个值为 null。您需要检查堆栈跟踪并查看发生故障的行号。

例如,让我们假设您看到:

Unhandled exception:
NoSuchMethodError: The method '[]' was called on null.
Receiver: null
Tried calling: []("data")
#0      Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
#1      main (file:///Users/cbracken/foo.dart:3:23)
...
Run Code Online (Sandbox Code Playgroud)

上面的堆栈跟踪告诉您对空对象的调用位于main文件 foo.dart 的第 3 行。此外,它告诉您[]操作符是用参数 调用的'data'。如果我查看代码中的那一行并显示var foo = json['localteam']['data'],那么我会推断它json['localteam']返回 null。

  • @cbracken 在我的例子中,所有参数都已通过,但仍然始终收到此错误 (2认同)