📜  更改 json freezed dart 中的键 (1)

📅  最后修改于: 2023-12-03 15:40:11.446000             🧑  作者: Mango

更改 JSON Freezed Dart 中的键

在 Dart 中使用 Freezed 框架生成对应的模型类,可以避免手写冗长且易错的模型类代码,而且拥有强类型的特性,保证了代码的可维护性。但有时候在后端返回的 JSON 数据中的键与我们前端需要保持一致时,就需要更改相应的键来适配我们前端的需求。下面介绍如何更改 JSON Freezed Dart 中的键。

假设我们有一个后端返回的 JSON 数据结构如下:

{
  "id": 1,
  "name": "John Doe",
  "age": 30
}

我们用 Freezed 框架生成对应的模型类如下:

import 'package:freezed_annotation/freezed_annotation.dart';

part 'user.freezed.dart';
part 'user.g.dart';

@freezed
class User with _$User {
  const factory User({
    required int id,
    required String name,
    required int age,
  }) = _User;

  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}

现在我们需要将 JSON 中的 "id" 更改为 "userId",该如何处理呢?可以在 User 中添加以下代码:

@freezed
class User with _$User {
  const factory User({
    @_JsonKey(name: 'userId') // 添加此行代码
    required int id,
    required String name,
    required int age,
  }) = _User;

  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}

这样在进行 fromJson 操作时,“id”会被替换为“userId”。

以上就是如何更改 JSON Freezed Dart 中的键的介绍。通过使用 Freezed 框架,我们可以轻松高效地处理 JSON 数据。