Flutter Json自动反序列化——json_serializable v1
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 'example.g.dart';
,这是为了和生成的代码一起工作。Example
类使用@JsonSerializable()
注解标记,表示它可以自动序列化为JSON。该类有两个属性:name
和age
。构造函数中这些属性被标记为必要参数。fromJson
工厂构造函数用于从JSON创建对象,toJson
方法将对象转换为JSON。在main
函数中,我们创建了一个Example
实例,将其序列化为JSON,然后再将JSON反序列化回Example
实例。
评论已关闭