# json_serializable 0.1.0

Generates utilities to aid in serializing to/from JSON.




## Installing
```
export PUB_HOSTED_URL=https://pub.mirror.p-hatan.ir
flutter pub add 'json_serializable:0.1.0'
```
Published: 2017-07-20T17:13:20.948975Z
Expected archive SHA-256: ea38aff27fc748f5104e105077860e812dc812c43063c3890bb25ab80f357ce4

Available in cache; verification: upstream_checksum
## Direct dependencies
- analyzer: >=0.29.10 <0.31.0
- build: ^0.9.0
- cli_util: ^0.1.0
- path: ^1.3.2
- source_gen: ^0.6.1+1

## Package README (untrusted upstream documentation)
[![Build Status](https://travis-ci.org/dart-lang/json_serializable.svg?branch=master)](https://travis-ci.org/dart-lang/json_serializable)

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()`:

```dart
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`:

```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(),
      };
}
```

## Changelog
## 0.1.0

* Split off from [source_gen](https://pub.dartlang.org/packages/source_gen).
* Add `/* unsafe */` comments to generated output likely to be unsafe.
* Support (de)serializing values in `Map`.
* Fix ordering of fields when they are initialized via constructor.
* Don't use static members when calculating fields to (de)serialize.







 
