Flutter Dart Macro 宏简化 JSON 序列化
import 'package:json_annotation/json_annotation.dart';
part 'example.g.dart';
@JsonSerializable()
class Example {
final String name;
final int age;
Example({required this.name, required this.age});
factory Example.fromJson(Map<String, dynamic> json) => _$ExampleFromJson(json);
Map<String, dynamic> toJson() => _$ExampleToJson(this);
}
void main() {
final example = Example(name: 'John Doe', age: 30);
final jsonString = example.toJson().toString();
print(jsonString);
final newExample = Example.fromJson(jsonDecode(jsonString));
print(newExample.name);
print(newExample.age);
}
这段代码首先导入了json_annotation
包,然后声明了一个part
,这是为了和生成的代码一起工作。@JsonSerializable()
注解告诉生成器这个类需要序列化。Example
类有两个属性,name
和age
,它们都是必须的。该类有一个工厂构造方法fromJson
,它接受一个JSON对象并将其转换为Example
实例。toJson
方法则将Example
实例转换为JSON对象。在main
函数中,我们创建了一个Example
实例,将其序列化为JSON,然后再将JSON字符串反序列化回Example
实例。
评论已关闭