Flutter JSON 转 Model: 使用 json_serializable 库
在 Flutter 中,您可以使用json_serializable库来自动生成模型类。下面是一个简单的例子来演示如何使用json_serializable来将JSON转换为模型类。
首先,您需要在pubspec.yaml文件中添加json_serializable和build_runner依赖项:
dependencies:
flutter:
sdk: flutter
json_annotation: ^4.0.0
dev_dependencies:
flutter_test:
sdk: flutter
json_serializable: ^4.1.0
build_runner: ^2.1.4
然后,创建一个名为user.dart的新文件,并添加以下内容:
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
final String name;
final int age;
final String email;
User({required this.name, required this.age, required this.email});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
接下来,您需要在终端中运行以下命令来生成模型类的序列化和反序列化方法:
flutter pub run build_runner build
这将生成一个名为user.g.dart的新文件,其中包含User类的fromJson和toJson方法。
现在,您可以使用以下代码将JSON数据转换为User对象:
import 'dart:convert';
import 'package:flutter/material.dart';
import 'user.dart';
void main() {
String jsonStr = '{"name": "John Doe", "age": 30, "email": "johndoe@example.com"}';
Map<String, dynamic> json = jsonDecode(jsonStr);
User user = User.fromJson(json);
print(user.name); // John Doe
print(user.age); // 30
print(user.email); // johndoe@example.com
}
这就是如何使用json_serializable库将JSON转换为模型类的简单示例。您可以根据需要根据JSON结构定义自己的模型类。
原文地址: https://www.cveoy.top/t/topic/w3D 著作权归作者所有。请勿转载和采集!