You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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"],
    );
  }
}

关键修正点

  1. 在UserModel构造函数的右大括号后添加分号;,这是Dart构造函数定义的必填语法要求。
  2. 可选优化:移除JSON映射中的尾部逗号,虽然Dart允许尾部逗号,但去掉后更符合通用代码规范。

修正后,你之前尝试的两种toJson写法(函数体形式和箭头函数形式)都能正常运行。

内容的提问来源于stack exchange,提问作者Ogunyemi Oluwafisayomi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 05:53:11