📅  最后修改于: 2023-12-03 15:00:47.850000             🧑  作者: Mango
在Flutter应用程序中,我们必须与API进行通信,而API返回的响应往往是JSON格式的数据。因此,Flutter提供了一种JSON序列化库,可以将JSON响应转换为对象以方便存储和在应用程序中使用。
flutter pub add json_serializable
@JsonSerializable()
@JsonSerializable()
class Person {
@JsonKey(name: 'username')
String name;
int age;
Person({this.name, this.age});
factory Person.fromJson(Map<String, dynamic> json) =>
_$PersonFromJson(json);
Map<String, dynamic> toJson() => _$PersonToJson(this);
}
flutter pub run build_runner build
final Map<String, dynamic> json = {'username': 'Tom', 'age': 18};
final person = Person.fromJson(json);
print(person.name); // Tom
@JsonSerializable()
:必须添加在需要序列化的类上@JsonKey(name: 'custom_name')
:使用此注解可以将选项与JSON名称关联@JsonKey(ignore: true)
:使用此注解可以忽略属性,不进行序列化。通过以上步骤,我们可以方便地将JSONAPI响应序列化为对象,并在Flutter应用程序中使用。使用json_serializable库非常简单,只需在需要序列化的类上添加注解即可。