如何在 Flutter 中将 api 中的 Model 类设置为 0 或 null 值

Del*_*ain 1 api null response dart flutter

我正在调用具有混合值的 api。有些值返回 0,有些值返回 int。但是当我调用该 api 时,出现以下错误:

The getter 'actualTotalFee' was called on null.
Receiver: null
Tried calling: actualTotalFee
Run Code Online (Sandbox Code Playgroud)

我的API响应是:

"summary": {
        "said_fee": 0,
        "nos": 11,
        "currentPayable": 0,
        "eximp-sem": 1,
        "sum_of_tution_fee": 173875,
        "common_scholarship": 0,
        "actual_total_fee": 0,
        "special_scholarship": 10000,
        "per_semester_fee": 0,
        "per_semester_fee_without_scholarship": 0,
        "total_paid": 190000,
        "total_current_due": -200000,
        "Due_Up_to_April": -200000,
        "total_due": -200000
      }
Run Code Online (Sandbox Code Playgroud)

我的api调用方法:

// Getting Accounts Summery
  Future<AccountSummery> fetchAccountSummery(int userId) async {
    
    final url =
        Api.baseUrl + 'student_account_info_summary/$userId?token=$authToken';

    try {
      final response = await get(Uri.encodeFull(url));

      final loadedItem = json.decode(response.body);

      if (response.statusCode == 200) {
        return AccountSummery.fromJson(loadedItem['summary']);
      } else {
        throw Exception('Error in getting account summery');
      }
    } catch (error) {
      throw error;
    }
  }
Run Code Online (Sandbox Code Playgroud)

我的模型调用:

class AccountSummery {
  final int actualTotalFee;
  final int specialScholarship;
  final int perSemesterWithoutScholarship;
  final int perSemesterFee;
  final int totalPaid;
  final double totalCurrentDue;
  final int totalDue;

  AccountSummery(
      {
        this.actualTotalFee,
        this.specialScholarship,
        this.perSemesterWithoutScholarship,
        this.perSemesterFee,
        this.totalPaid,
        this.totalCurrentDue,
        this.totalDue
      });

  factory AccountSummery.fromJson(Map<String, dynamic> json) {
    return AccountSummery(
      actualTotalFee: json['actual_total_fee'],
      specialScholarship: json['special_scholarship'],
      perSemesterWithoutScholarship: json['per_semester_fee_without_scholarship'],
      perSemesterFee: json['per_semester_fee'],
      totalPaid: json['total_paid'],
      totalCurrentDue: json['total_current_due'],
      totalDue: json['total_due'],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

由于“actual_total_fee”、“per_semester_fee”等某些响应返回 0 值,我的 api 响应方法失败。

有什么方法可以运行 api 方法或为我的模型类设置 0 值吗?

Moa*_*zhy 5

在你的模型中

  actualTotalFee: json['actual_total_fee'] ?? 0,
Run Code Online (Sandbox Code Playgroud)

在你的通话中

AccountSummeryObj?.actualTotalFee ?? 0
Run Code Online (Sandbox Code Playgroud)