首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何编写解析此JSON的Dart模型类?

编写解析JSON的Dart模型类可以使用Dart语言中的json_serializable库来简化操作。下面是一个示例:

首先,需要在pubspec.yaml文件中添加依赖:

代码语言:txt
复制
dependencies:
  json_annotation: ^4.0.0
  json_serializable: ^4.1.0

然后,在Dart文件中导入相关库:

代码语言:txt
复制
import 'package:json_annotation/json_annotation.dart';

part 'model.g.dart';

接下来,定义一个Dart类,并使用@JsonSerializable注解标记该类为可序列化的JSON模型类:

代码语言:txt
复制
@JsonSerializable()
class MyModel {
  final String name;
  final int age;

  MyModel(this.name, this.age);

  factory MyModel.fromJson(Map<String, dynamic> json) => _$MyModelFromJson(json);
  Map<String, dynamic> toJson() => _$MyModelToJson(this);
}

在上述代码中,name和age是模型类的属性,构造函数用于初始化这些属性。fromJson和toJson方法分别用于将JSON转换为模型对象和将模型对象转换为JSON。

接下来,需要运行以下命令生成序列化/反序列化的代码:

代码语言:txt
复制
flutter pub run build_runner build

运行完毕后,会在同级目录下生成一个名为model.g.dart的文件,其中包含了自动生成的序列化/反序列化代码。

最后,可以使用以下代码来解析JSON数据:

代码语言:txt
复制
import 'dart:convert';

void main() {
  String jsonStr = '{"name": "John", "age": 25}';
  Map<String, dynamic> json = jsonDecode(jsonStr);
  MyModel model = MyModel.fromJson(json);
  print(model.name); // 输出:John
  print(model.age); // 输出:25
}

这样就完成了解析JSON的Dart模型类的编写。对于更复杂的JSON结构,可以在模型类中嵌套其他模型类或使用@JsonKey注解来处理不同的字段名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券