Dart-无法创建toJSON方法



我有一个User对象,我希望能够从JSON中解码它,并将其转换为JSON。fromJSON()方法运行良好,但当我尝试添加toJSON()方法时,编译器会发疯。你知道吗?

Missing type arguments for map literal.  Try adding an explicit type, or remove implicit-dynamic from your analysis options file.

这是我的User型号

class User {
int id;
String userName;
User({this.id, this.userName});
factory User.fromJson(dynamic json) {
return User(
id: int.parse(json['id'].toString()),
userName: json['user_name'].toString());
}
Map<String, dynamic> toJson() =>
{
'id': id,
'user_name': userName,
};
}

根据错误消息,您在静态分析设置中禁用了implicit-dynamic。您有两个选项:

  1. 检查analysis_options.yml文件,查找implicit-dynamic: false行并将其删除(或更改为true(。

  2. 在代码中为地图添加显式类型:

Map<String, dynamic> toJson() => <String, dynamic>{
'id': id,
'user_name': userName,
};

我会选择第二种方式,因为隐含的动力学可能会导致一些微妙的错误,最好禁止它们。

删除analysis_options.yaml或启用隐式动态。

最新更新