json_serializable 0.1.0+1
json_serializable: ^0.1.0+1 copied to clipboard
Generates utilities to aid in serializing to/from JSON.
Provides source_gen
Generator
s which generate code to
make it simple to serialize to and from JSON.
Example #
Given a library example.dart
with an Person
class annotated with
@JsonSerializable()
:
library json_serializable.example;
import 'package:json_serializable/annotations.dart';
part 'example.g.dart';
@JsonSerializable()
class Person extends Object with _$PersonSerializerMixin {
final String firstName, middleName, lastName;
@JsonKey('date-of-birth')
final DateTime dateOfBirth;
Person(this.firstName, this.lastName, {this.middleName, this.dateOfBirth});
factory Person.fromJson(json) => _$PersonFromJson(json);
}
source_gen
creates the corresponding part example.g.dart
:
part of json_serializable.example;
Person _$PersonFromJson(Map json) =>
new Person(json['firstName'] as String, json['lastName'] as String,
middleName: json['middleName'] as String,
dateOfBirth: json['date-of-birth'] == null
? null
: DateTime.parse(json['date-of-birth']));
abstract class _$PersonSerializerMixin {
String get firstName;
String get middleName;
String get lastName;
DateTime get dateOfBirth;
Map<String, dynamic> toJson() => <String, dynamic>{
'firstName': firstName,
'middleName': middleName,
'lastName': lastName,
'date-of-birth': dateOfBirth?.toIso8601String(),
};
}