flutter json 转 drat 自动生产dart代码

https://github.com/quicktype/quicktype

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter中可以使用Dart语言中的json_serializable和json_annotation库来将JSON数据换为Dart对象。 首先,在pubspec.yaml文件中添加以下依赖: ```yaml dependencies: flutter: sdk: flutter json_annotation: ^4.0.1 build_runner: ^2.0.4 ``` 然后,创建一个Dart文件(如models.dart),并在其中创建一个类,该类的字段应该与JSON数据的键相匹配。例如,如果JSON数据如下所示: ```json { "name": "John Smith", "age": 30, "email": "john.smith@example.com" } ``` 则可以创建以下Dart类: ```dart import 'package:json_annotation/json_annotation.dart'; part 'models.g.dart'; @JsonSerializable() class Person { final String name; final int age; final String email; Person({required this.name, required this.age, required this.email}); factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json); Map<String, dynamic> toJson() => _$PersonToJson(this); } ``` 在这个类中,@JsonSerializable()注释告诉json_serializable库要为这个类生成序列化和反序列化代码。fromJson()和toJson()方法是必须的,用于将JSON数据换为对象和将对象换为JSON数据。 接下来,运行以下命令: ```bash flutter pub run build_runner build ``` 这将生成一个名为models.g.dart的文件,其中包含fromJson()和toJson()方法的实现。 现在,可以使用以下代码JSON数据换为Person对象: ```dart import 'dart:convert'; import 'models.dart'; void main() { final jsonStr = '{"name": "John Smith", "age": 30, "email": "john.smith@example.com"}'; final jsonMap = json.decode(jsonStr); final person = Person.fromJson(jsonMap); print(person.name); // John Smith print(person.age); // 30 print(person.email); // john.smith@example.com } ``` 同样,可以使用以下代码将Person对象换为JSON数据: ```dart import 'dart:convert'; import 'models.dart'; void main() { final person = Person(name: 'John Smith', age: 30, email: 'john.smith@example.com'); final jsonStr = json.encode(person.toJson()); print(jsonStr); // {"name":"John Smith","age":30,"email":"john.smith@example.com"} } ``` 以上就是将JSON数据换为Dart对象的基本步骤。可以根据自己的需要,创建多个类来表示不同的JSON数据结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值