Flutter 中的 JSON 解析,程序员工作2年月薪12K
在Flutter中解析JSON的一个常见方法是使用json_serializable
包和json_annotation
包。以下是一个简单的例子:
首先,定义一个模型类(例如User
),并使用json_serializable
生成JSON序列化代码。
// user.g.dart 是通过json_serializable自动生成的
import 'user.g.dart';
@jsonSerializable
class User extends _$User {
User({
required this.id,
required this.name,
required this.email,
});
int id;
String name;
String email;
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
然后,你可以使用jsonDecode
函数来解析JSON字符串,并将其转换为User
对象。
import 'dart:convert';
void main() {
// 假设我们有一个JSON字符串
String jsonString = '{"id": 1, "name": "John Doe", "email": "johndoe@example.com"}';
// 解析JSON字符串为Map
Map<String, dynamic> userMap = jsonDecode(jsonString);
// 使用User.fromJson方法将Map转换为User对象
User user = User.fromJson(userMap);
print('User ID: ${user.id}');
print('User Name: ${user.name}');
print('User Email: ${user.email}');
}
确保你已经在pubspec.yaml中添加了必要的依赖:
dependencies:
json_annotation: ^4.0.0
dev_dependencies:
build_runner: ^2.0.0
json_serializable: ^6.0.0
运行flutter pub run build_runner build
来生成序列化代码。
评论已关闭