32 lines
1.1 KiB
Dart
32 lines
1.1 KiB
Dart
import 'package:json_annotation/json_annotation.dart';
|
|
|
|
/// This allows the `User` class to access private members in
|
|
/// the generated file. The value for this is *.g.dart, where
|
|
/// the star denotes the source file name.
|
|
part 'user.g.dart';
|
|
|
|
/// An annotation for the code generator to know that this class needs the
|
|
/// JSON serialization logic to be generated.
|
|
@JsonSerializable()
|
|
class User {
|
|
User(this.login, this.avatarUrl, this.name, this.publicRepos, this.followers,
|
|
this.following);
|
|
|
|
String login;
|
|
String avatarUrl;
|
|
String name;
|
|
int publicRepos;
|
|
int followers;
|
|
int following;
|
|
|
|
/// A necessary factory constructor for creating a new User instance
|
|
/// from a map. Pass the map to the generated `_$UserFromJson()` constructor.
|
|
/// The constructor is named after the source class, in this case User.
|
|
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
|
|
|
|
/// `toJson` is the convention for a class to declare support for serialization
|
|
/// to JSON. The implementation simply calls the private, generated
|
|
/// helper method `_$UserToJson`.
|
|
Map<String, dynamic> toJson() => _$UserToJson(this);
|
|
}
|