codable 1.0.0-beta copy "codable: ^1.0.0-beta" to clipboard
codable: ^1.0.0-beta copied to clipboard

discontinued
outdatedDart 1 only

A library for converting dynamic, structured data (JSON, YAML) into Dart types.

codable #

Build Status

A library for encoding and decoding dynamic data into Dart objects.

Data objects extend Coding:

class Person extends Coding {
  String name;

  @override
  void decode(KeyedArchive object) {
    // must call super
    super.decode(object);

    name = object.decode("name");   
  }

  @override
  void encode(KeyedArchive object) {
    object.encode("name", name);
  }
}

An object that extends Coding can be read from JSON:

final json = json.decode(...);
final archive = KeyedArchive.unarchive(json);
final person = new Person()..decode(archive);

Coding objects can encode or decode other Coding objects.

class Team extends Coding {

  List<Person> members;
  Person manager;

  @override
  void decode(KeyedArchive object) {
    // must call super
    super.decode(object);

    members = object.decodeObjectList("members");
    manager = object.decodeObject("manager");
  }

  @override
  void encode(KeyedArchive object) {
    object.encodeObject("manager", manager);
    object.encodeObjectList("members", members);
  }
}

Coding objects may be referred to multiple times in a document without duplicating their structure. See the specification for JSON Schema and the $ref keyword for more details.

1
likes
0
pub points
65%
popularity

Publisher

unverified uploader

A library for converting dynamic, structured data (JSON, YAML) into Dart types.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

meta

More

Packages that depend on codable