5

根据 json_serializable 包安装说明,你应该添加以下依赖:

dependencies:
  json_serializable: ^2.0.3

这是我的代码:

import 'package:json_annotation/json_annotation.dart';

part 'person.g.dart';

@JsonSerializable(nullable: false)
class Person {
  final String firstName;
  final String lastName;
  final DateTime dateOfBirth;
  Person({this.firstName, this.lastName, this.dateOfBirth});
  factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
  Map<String, dynamic> toJson() => _$PersonToJson(this);
}

现在在 Flutter 中运行它:

flutter packages pub run build_runner build

或者对于 Dart 项目来说:

pub run build_runner build

我收到以下错误:

找不到包“build_runner”。您是否忘记添加依赖项?

怎么了?

4

2 回答 2

14

这是如何设置 Pub 以自动生成安装说明的问题。以下是您实际需要添加的依赖项:

dependencies:
  json_annotation: ^2.0.0

dev_dependencies:
  build_runner: ^1.0.0
  json_serializable: ^2.0.0

这在json_serializable 示例中显示。

现在您可以为这样的类生成 dart 文件

import 'package:json_annotation/json_annotation.dart';

part 'person.g.dart';

@JsonSerializable(nullable: false)
class Person {
  final String firstName;
  final String lastName;
  final DateTime dateOfBirth;
  Person({this.firstName, this.lastName, this.dateOfBirth});
  factory Person.fromJson(Map<String, dynamic> json) => _$PersonFromJson(json);
  Map<String, dynamic> toJson() => _$PersonToJson(this);
}

通过在 Flutter 项目中运行它:

flutter packages pub run build_runner build

或者在 Dart 项目中:

pub run build_runner build

其他注意事项:

  • 确保它与您的模型类文件part 'person.g.dart'的名称相匹配。person.dart也就是说,不要调用它example.g.dart
于 2019-03-25T21:40:19.643 回答
0

你需要 flutter packages get 先跑

于 2019-03-25T21:51:30.483 回答