Flutter中UserModel类的toJson方法报函数体缺失错误如何解决?
问题解决:Flutter UserModel类toJson方法语法错误
你的代码错误根源不是toJson方法本身,而是构造函数定义结束后缺少分号,导致Dart编译器无法正确解析后续代码,误报了toJson方法的错误。
修正后的完整代码
import 'package:cloud_firestore/cloud_firestore.dart'; class UserModel { final String uid; final String name; final String email; UserModel({ required this.uid, required this.name, required this.email, }); // 补上构造函数末尾的分号 Map<String, dynamic> toJson() => {"uid": uid, "email": email, "name": name}; // 可选:移除JSON映射的尾部逗号,更符合常规写法 static UserModel fromSnap(DocumentSnapshot snap) { var snapshot = snap.data() as Map<String, dynamic>; return UserModel( uid: snapshot["uid"], name: snapshot["name"], email: snapshot["email"], ); } }
关键修正点
- 在
UserModel构造函数的右大括号后添加分号;,这是Dart构造函数定义的必填语法要求。 - 可选优化:移除JSON映射中的尾部逗号,虽然Dart允许尾部逗号,但去掉后更符合通用代码规范。
修正后,你之前尝试的两种toJson写法(函数体形式和箭头函数形式)都能正常运行。
内容的提问来源于stack exchange,提问作者Ogunyemi Oluwafisayomi
相关产品推荐
相关产品推荐

