Flutter 中的 NoSuchMethod 异常
NoSuchMethod Exception in Flutter
我正在尝试进行 get Api 调用并从列表中获取所有名称并填充到列表视图中。
下面是我的json结构的例子
{
"code": 100,
"msg": "Success",
"data": {
"groups": [
{
"name": "group aa",
"email": "aaaaa@gmail.com",
"zipcode": "34543",
"buildName": "11",
"platform": "Web",
"createdDate": "2021-06-18 15:39:56",
"updatedDate": "2021-06-18 15:39:56",
"id": "c7f8e7f5-b17f-4083-be43-69a1c1ea852c"
},
],
}
为此我已经创建了一个模型class
class Group {
Group({
this.name,
this.email,
this.zipcode,
this.buildName,
this.platform,
this.createdDate,
this.updatedDate,
this.id,
});
String name;
String email;
String zipcode;
String buildName;
String platform;
DateTime createdDate;
DateTime updatedDate;
String id;
factory Group.fromJson(Map<String, dynamic> json) => Group(
name: json["name"],
email: json["email"],
zipcode: json["zipcode"],
buildName: json["buildName"],
platform: json["platform"],
createdDate: DateTime.parse(json["createdDate"]),
updatedDate: DateTime.parse(json["updatedDate"]),
id: json["id"],
);
Map<String, dynamic> toJson() => {
"name": name,
"email": email,
"zipcode": zipcode,
"buildName": buildName,
"platform": platform,
"createdDate": createdDate.toIso8601String(),
"updatedDate": updatedDate.toIso8601String(),
"id": id,
};
问题是,我正在进行 get 调用并从 groups
数组中过滤数据,只是获取名称,但出现如下异常
NoSuchMethodError: The method 'forEach' was called on null.
下面是Api代码,在api调用中也有响应。签入邮递员
void getUserGroups() async {
http.Response response = await http.get(Uri.parse(
'Api Url'));
final Map<String, dynamic> responseData = json.decode(response.body);
responseData['groups'].forEach((groupDetails) {
final Group groups = Group(name: groupDetails['name']);
setState(() {
items.add(groups);
});
});
}
不确定哪里出了问题,它说 forEach
有问题。但无法理解问题
你调用了 responseData['groups']
,但是看看你的 json,它包含 data
上面的对象 groups
。致电 responseData['data']['groups']
我正在尝试进行 get Api 调用并从列表中获取所有名称并填充到列表视图中。
下面是我的json结构的例子
{
"code": 100,
"msg": "Success",
"data": {
"groups": [
{
"name": "group aa",
"email": "aaaaa@gmail.com",
"zipcode": "34543",
"buildName": "11",
"platform": "Web",
"createdDate": "2021-06-18 15:39:56",
"updatedDate": "2021-06-18 15:39:56",
"id": "c7f8e7f5-b17f-4083-be43-69a1c1ea852c"
},
],
}
为此我已经创建了一个模型class
class Group {
Group({
this.name,
this.email,
this.zipcode,
this.buildName,
this.platform,
this.createdDate,
this.updatedDate,
this.id,
});
String name;
String email;
String zipcode;
String buildName;
String platform;
DateTime createdDate;
DateTime updatedDate;
String id;
factory Group.fromJson(Map<String, dynamic> json) => Group(
name: json["name"],
email: json["email"],
zipcode: json["zipcode"],
buildName: json["buildName"],
platform: json["platform"],
createdDate: DateTime.parse(json["createdDate"]),
updatedDate: DateTime.parse(json["updatedDate"]),
id: json["id"],
);
Map<String, dynamic> toJson() => {
"name": name,
"email": email,
"zipcode": zipcode,
"buildName": buildName,
"platform": platform,
"createdDate": createdDate.toIso8601String(),
"updatedDate": updatedDate.toIso8601String(),
"id": id,
};
问题是,我正在进行 get 调用并从 groups
数组中过滤数据,只是获取名称,但出现如下异常
NoSuchMethodError: The method 'forEach' was called on null.
下面是Api代码,在api调用中也有响应。签入邮递员
void getUserGroups() async {
http.Response response = await http.get(Uri.parse(
'Api Url'));
final Map<String, dynamic> responseData = json.decode(response.body);
responseData['groups'].forEach((groupDetails) {
final Group groups = Group(name: groupDetails['name']);
setState(() {
items.add(groups);
});
});
}
不确定哪里出了问题,它说 forEach
有问题。但无法理解问题
你调用了 responseData['groups']
,但是看看你的 json,它包含 data
上面的对象 groups
。致电 responseData['data']['groups']