serialize method
Object
serialize(
- Serializers serializers,
- AnyOf 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 a value that can be represented as a JSON primitive: a boolean, an integer, a double, a String or a List.
TODO(davidmorgan): document the wire format.
Implementation
@override
Object serialize(Serializers serializers, AnyOf object,
{FullType specifiedType = FullType.unspecified}) {
final result = <Object?>[];
//serialize the values
for (var valueEntry in object.values.entries) {
final typeIndex = valueEntry.key;
final type = object.types[typeIndex];
final value = valueEntry.value;
final serialized = serializers.serialize(
value,
specifiedType: specifiedType.parameters[typeIndex],
);
if (serialized is Map) {
for (var e in serialized.entries) {
result.add(e.key);
result.add(e.value);
}
} else {
//primitive, return it
return serialized!;
}
}
return result;
}