您将需要导入dart:convert
:
import 'dart:convert';
内联示例
String rawJson = '{"name":"Mary","age":30}';
Map<String, dynamic> map = jsonDecode(rawJson); // import 'dart:convert';
String name = map['name'];
int age = map['age'];
Person person = Person(name, age);
Note:当我在服务器端 Dart 的 VS Code 中执行此操作时,我必须指定类型:
Map<String, dynamic> map = jsonDecode(rawJson) as Map<String, dynamic>;
模型类示例
模型类包含地图转换逻辑:
class Person {
String name;
int age;
Person(this.name, this.age);
// named constructor
Person.fromJson(Map<String, dynamic> json)
: name = json['name'],
age = json['age'];
// method
Map<String, dynamic> toJson() {
return {
'name': name,
'age': age,
};
}
}
JSON 转换是这样完成的:
String rawJson = '{"name":"Mary","age":30}';
Map<String, dynamic> map = jsonDecode(rawJson);
Person person = Person.fromJson(map);
查看我的完整答案here.
生成序列化代码
编写序列化代码时很容易出错,所以一般建议使用json_serialized由 Dart 团队打包。但是,您可以了解不同方法的优缺点here.
如果您想要更多选择,您还可以查看内置值包裹。
See also
- 在 Flutter 中使用 JSON - 第 1 部分:dart:convert
- 在 Flutter 中使用 JSON - 第 2 部分:json_serialized
- 使用 Flutter 反序列化 JSON 的一些选项