Создание файла дротика с пакетом json_serializable - PullRequest
1 голос
/ 26 марта 2019

В соответствии с пакетом 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 packages pub run build_runner build

Или это для проекта Dart:

pub run build_runner build

Я получаю следующую ошибку:

Не удалось найти пакет "build_runner". Вы забыли добавить зависимость?

Что не так?

Ответы [ 2 ]

3 голосов
/ 26 марта 2019

Это проблема с настройкой Pub для автоматической генерации инструкций по установке. Вот зависимости, которые вам действительно нужно добавить:

dependencies:
  json_annotation: ^2.0.0

dev_dependencies:
  build_runner: ^1.0.0
  json_serializable: ^2.0.0

Это показано в примере json_serializable .

Теперь вы можете сгенерировать файл дротика для такого класса

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.
0 голосов
/ 26 марта 2019

тебе нужно бежать flutter packages get первый

...