Decodable<T> class abstract interface

An object that can decode a value of type T from various data formats.

The interface can be used like this:

class PersonDecodable implements Decodable<Person> {
  const PersonDecodable();

  @override
  Person decode(Decoder decoder) {
    /* ... */
  }
}

The Decodable interface can be used for any type, including first-party types, core or third-party types.

Objects implementing Decodable can decode values to various data formats using the respective T from<Format>(data) extension method. A particular method is available by importing the appropriate library or package:

final Decodable<Person> personDecodable = const PersonDecodable();

// From 'package:codable/json.dart'
final Person person = personDecodable.fromJson('...');

// From 'package:codable/standard.dart'
final Person person = personDecodable.fromMap({...});

// From imaginary 'package:x/x.dart'
final Person person = personDecodable.fromX(x);

See also:

  • Encodable for encoding values to various data formats.
  • Codable for combining both encoding and decoding of types.
Implementers
Available extensions

Constructors

Decodable.fromHandler(T decode(Decoder decoder))
Creates a Decodable from a handler function.
factory

Properties

hashCode int
The hash code for this object.
no setterinherited
orNull Decodable<T?>

Available on Decodable<T>, provided by the AsNullableDecodable extension

Returns a Decodable object that can decode T or null.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

decode(Decoder decoder) → T
Decodes a value of type T using the decoder.
fromCsv(String csv) List<T>

Available on Decodable<T>, provided by the CsvDecodable extension

Decodes a CSV string into a list of objects.
fromCsvBytes(List<int> bytes) List<T>

Available on Decodable<T>, provided by the CsvDecodable extension

fromJson(String json) → T

Available on Decodable<T>, provided by the JsonDecodable extension

fromJsonBytes(List<int> bytes) → T

Available on Decodable<T>, provided by the JsonDecodable extension

fromMap(Map<String, dynamic> map) → T

Available on Decodable<T>, provided by the StandardDecodable extension

fromMsgPack(List<int> bytes) → T

Available on Decodable<T>, provided by the MsgPackDecodable extension

fromProgressiveJson(List<int> bytes) → T

Available on Decodable<T>, provided by the ProgressiveJsonDecodable extension

Decodes progressive JSON bytes into T.
fromProgressiveJsonStream(Stream<List<int>> bytes) Stream<T>

Available on Decodable<T>, provided by the ProgressiveJsonDecodable extension

Decodes a progressive JSON byte stream into a Stream of T.
fromValue(Object? value) → T

Available on Decodable<T>, provided by the StandardDecodable extension

future() Decodable<Future<T>>

Available on Decodable<T>, provided by the AsAsyncDecodable extension

Returns a Decodable object that can decode a future of T.
list() Decodable<List<T>>

Available on Decodable<T>, provided by the AsListDecodable extension

Returns a Decodable object that can decode a list of T.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
set() Decodable<Set<T>>

Available on Decodable<T>, provided by the AsSetDecodable extension

Returns a Decodable object that can decode a set of T.
stream() Decodable<Stream<T>>

Available on Decodable<T>, provided by the AsAsyncDecodable extension

Returns a Decodable object that can decode a stream of T.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited