- 以前,我尝试以另一种形式解析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']
);
}
}
。
homeTeam: HomeTeam.fromJson(json['localTeam']['data']),
然后结果出现错误。
NoSuchMethodError:方法'[]'在null上调用。 E /颤振( 220):接收方:空E / flutter:尝试呼叫:
如何解决这个问题?
答案 0 :(得分:2)
错误消息NoSuchMethodError: The method '[]' was called on null.
告诉您已将索引([]
)运算符调用为null。
在您的问题中没有减少的代码示例和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)
...
上面的堆栈跟踪告诉您,对空对象的调用在文件foo.dart的第3行的main
中。此外,它告诉您[]
运算符是用参数'data'
调用的。如果我在代码中查看该行并显示var foo = json['localteam']['data']
,则可以推断出json['localteam']
返回null。