当使用 json_serialazable ( https://pub.dartlang.org/packages/json_serializable ) 时,变量名称似乎需要与 json 名称相同。我错了吗?
@JsonSerializable(nullable: false)
class Person {
final String firstName;
final String lastName;
final DateTime dateOfBirth;
Person({this.firstName, this.lastName, this.dateOfBirth});
factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
Map<String, dynamic> toJson() => _$PersonToJson(this);
}
Run Code Online (Sandbox Code Playgroud)
json 还将包含“firstName”、“lastName”和“dateOfBirth”参数。
比方说,我更喜欢使用“final String first”而不是“firstName”,但仍然希望从 json 读取的“firstName”映射到“first”。是否可以?
我知道有手动方式,但如果我仍然可以使用这种方式,我想知道如何?
谢谢!
您可以添加注释来自定义
@JsonKey(name: 'firstName')
final String first;
Run Code Online (Sandbox Code Playgroud)
另请参阅https://github.com/dart-lang/json_serializes/blob/master/json_annotation/lib/src/json_key.dart,它支持序列化和反序列化的各种设置。
json_annotation包还有几个注释。
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |