According to the json_serializable package installing instructions, you should add the following dependency:
dependencies:
json_serializable: ^2.0.3
This is my code:
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);
}
Now running this in Flutter:
flutter packages pub run build_runner build
Or this for a Dart project:
pub run build_runner build
I get the following error:
Could not find package "build_runner". Did you forget to add a dependency?
What's wrong?
This is a problem with how Pub is set up to automatically generate the installation instructions. Here are the dependencies that you actually need to add:
dependencies:
json_annotation: ^2.0.0
dev_dependencies:
build_runner: ^1.0.0
json_serializable: ^2.0.0
This is shown in the json_serializable
example.
Now you can generate the dart file for a class like this
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);
}
by running this in a Flutter project:
flutter packages pub run build_runner build
or this in a Dart project:
pub run build_runner build
part 'person.g.dart'
matches the name of your person.dart
model class file. That is, don't call it example.g.dart
.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With