deserialize method

  1. @override
NamedMembersMap deserialize(
  1. Serializers serializers,
  2. Iterable<Object?> serialized, {
  3. FullType specifiedType = FullType.unspecified,
})
override

Deserializes serialized.

serialized is an Iterable that may contain booleans, integers, doubles, Strings and/or Iterables.

Use serializers as needed for nested deserialization. Information about the type being deserialized is provided in specifiedType.

Implementation

@override
NamedMembersMap deserialize(
  Serializers serializers,
  Iterable<Object?> serialized, {
  FullType specifiedType = FullType.unspecified,
}) {
  final membersMap = NamedMembersMap({});
  final iterator = serialized.iterator;
  while (iterator.moveNext()) {
    final memberName = iterator.current as String;
    final shapeId = ShapeId.empty.replace(member: memberName);
    iterator.moveNext();
    final value = iterator.current;
    membersMap[memberName] = serializers
        .deserializeWith(
          MemberShape.serializer,
          StandardJsonPlugin()
              .beforeDeserialize(value, const FullType(MemberShape)),
        )!
        .rebuild(
          (b) => b
            ..shapeId = shapeId
            ..memberName = memberName,
        );
  }
  return membersMap;
}