Flutter JSON解析 #
一、手动解析 #
1.1 基本解析 #
dart
import 'dart:convert';
final jsonStr = '{"name": "John", "age": 30}';
final Map<String, dynamic> data = jsonDecode(jsonStr);
print(data['name']);
print(data['age']);
1.2 模型类 #
dart
class User {
final String name;
final int age;
User({required this.name, required this.age});
factory User.fromJson(Map<String, dynamic> json) {
return User(
name: json['name'],
age: json['age'],
);
}
Map<String, dynamic> toJson() {
return {
'name': name,
'age': age,
};
}
}
final user = User.fromJson(jsonDecode(jsonStr));
二、json_serializable #
2.1 安装 #
yaml
dependencies:
json_annotation: ^4.8.1
dev_dependencies:
json_serializable: ^6.7.1
build_runner: ^2.4.7
2.2 定义模型 #
dart
import 'package:json_annotation/json_annotation.dart';
part 'user.g.dart';
@JsonSerializable()
class User {
final String name;
final int age;
User({required this.name, required this.age});
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
Map<String, dynamic> toJson() => _$UserToJson(this);
}
2.3 生成代码 #
bash
flutter pub run build_runner build
三、总结 #
3.1 解析方式 #
| 方式 | 特点 |
|---|---|
| 手动解析 | 简单直接 |
| json_serializable | 自动生成 |
3.2 下一步 #
让我们学习 本地存储!
最后更新:2026-03-28