使用json_serialiazable(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);
}
并且json也将具有'firstName','lastName'和'dateOfBirth'参数。
让我说,我更喜欢使用“最终字符串优先”而不是“ firstName”,但仍然希望将从json读取的“ firstName”映射为“ first”。有可能吗?
我知道有手动方法,但是如果我仍然可以使用这种方法,我想知道怎么做?
谢谢!
答案 0 :(得分:2)
您可以添加注释以进行自定义
@JsonKey(name: 'firstName')
final String first;
另请参见https://github.com/dart-lang/json_serializable/blob/master/json_annotation/lib/src/json_key.dart,它支持用于序列化和反序列化的各种设置。
json_annotation软件包中还有更多注释。