我有一个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
。您有两个选项:
-
检查
analysis_options.yml
文件,查找implicit-dynamic: false
行并将其删除(或更改为true
(。 -
在代码中为地图添加显式类型:
Map<String, dynamic> toJson() => <String, dynamic>{
'id': id,
'user_name': userName,
};
我会选择第二种方式,因为隐含的动力学可能会导致一些微妙的错误,最好禁止它们。
删除analysis_options.yaml或启用隐式动态。