当前位置:实例文章 » 其他实例» [文章]flutter开发实战-jsontodart及 生成Dart Model类

flutter开发实战-jsontodart及 生成Dart Model类

发布人:shili8 发布时间:2025-03-02 02:22 阅读次数:0

**Flutter 开发实战: JSON 到 Dart 及生成 Dart Model 类**

在 Flutter 应用开发中,JSON 数据是非常常见的。如何将 JSON 数据转换为 Dart 对象呢?本文将教你如何使用 `json_serializable` 库来实现这一点,并且生成 Dart Model 类。

### 安装 json_serializable 库首先,我们需要安装 `json_serializable` 库。打开你的 Flutter项目,运行以下命令:

bashflutter pub add json_serializable


然后,在 `pubspec.yaml` 文件中添加如下配置:

ymldependencies:
 flutter:
 sdk: flutterdev_dependencies:
 flutter_test:
 sdk: flutter build_runner: ^2.1.5 json_serializable: ^4.7.3


### 定义 JSON 数据结构假设我们有一个 JSON 文件,内容如下:

json{
 "id":1,
 "name": "John Doe",
 "age":30,
 "address": {
 "street": "123 Main St",
 "city": "New York",
 "state": "NY"
 }
}


我们需要定义一个 Dart Model 类来表示这个 JSON 数据结构。创建一个新文件,例如 `models/user.dart`:

dart// models/user.dartimport 'package:json_annotation/json_annotation.dart';

part 'user.g.dart'; //生成的 Dart 文件名@JsonSerializable()
class User {
 @JsonKey(name: 'id')
 int id;

 @JsonKey(name: 'name')
 String name;

 @JsonKey(name: 'age')
 int age;

 @JsonKey(name: 'address')
 Address address;

 User({required this.id, required this.name, required this.age, required this.address});

 factory User.fromJson(Map json) => _$UserFromJson(json);

 Map toJson() => _$UserToJson(this);
}

class Address {
 @JsonKey(name: 'street')
 String street;

 @JsonKey(name: 'city')
 String city;

 @JsonKey(name: 'state')
 String state;

 Address({required this.street, required this.city, required this.state});
}


### 使用 json_serializable 库生成 Dart Model 类在 `models/user.dart` 文件中,我们使用 `@JsonSerializable()` 注解来定义 JSON 数据结构。然后,运行以下命令:

bashflutter pub run build_runner build


这将生成一个新的 Dart 文件 `lib/models/user.g.dart`,其中包含我们定义的 Dart Model 类。

### 使用 Dart Model 类现在,我们可以使用这个 Dart Model 类来处理 JSON 数据了。例如,我们可以使用 `fromJson()` 方法来创建一个 `User` 对象:

dartvoid main() {
 final json = '''
 {
 "id":1,
 "name": "John Doe",
 "age":30,
 "address": {
 "street": "123 Main St",
 "city": "New York",
 "state": "NY"
 }
 }
 ''';

 final user = User.fromJson(jsonDecode(json));

 print(user.id); // 输出:1 print(user.name); // 输出: John Doe}


### 总结在本文中,我们学习了如何使用 `json_serializable` 库将 JSON 数据转换为 Dart 对象,并且生成 Dart Model 类。我们定义了一个 JSON 文件,创建了一个 Dart Model 类来表示这个 JSON 数据结构,然后使用 `fromJson()` 方法来创建一个 `User` 对象。最后,我们使用这个 Dart Model 类来处理 JSON 数据。

希望本文对你有所帮助!

相关标签:flutter
其他信息

其他资源

Top