serialize method
Iterable<Object?>
serialize(
- Serializers serializers,
- Shape object, {
- FullType specifiedType = FullType.unspecified,
override
Serializes object
.
Use serializers
as needed for nested serialization. Information about
the type being serialized is provided in specifiedType
.
Returns an Iterable of values that can be represented as structured JSON: booleans, integers, doubles, Strings and Iterables.
TODO(davidmorgan): document the wire format.
Implementation
@override
Iterable<Object?> serialize(
Serializers serializers,
Shape object, {
FullType specifiedType = FullType.unspecified,
}) {
final map =
serializers.serialize(
object,
specifiedType: FullType(object.getType().type),
)
as Map<String, Object?>;
map['type'] = object.getType().name;
map.removeWhere(
(key, value) =>
value == null ||
(value is Map && value.isEmpty) ||
(value is List && value.isEmpty),
);
return map.entries.expand((entry) => [entry.key, entry.value]);
}