📅  最后修改于: 2023-12-03 15:40:11.446000             🧑  作者: Mango
在 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 数据。