deserialize method

  1. @override
VKWebAppGetGeodataResult deserialize(
  1. Serializers serializers,
  2. Iterable 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
VKWebAppGetGeodataResult deserialize(
  Serializers serializers,
  Iterable serialized, {
  FullType specifiedType = FullType.unspecified,
}) {
  final result = VKWebAppGetGeodataResultBuilder();

  final iterator = serialized.iterator;
  while (iterator.moveNext()) {
    final key = iterator.current as String;
    iterator.moveNext();
    final Object value = iterator.current as Object;
    switch (key) {
      case 'available':
        if (value is bool) {
          result.available = serializers.deserialize(value,
              specifiedType: const FullType(bool)) as bool?;
        } else if (value is int) {
          result.available = (serializers.deserialize(value,
                  specifiedType: const FullType(int)) as int?) ==
              1;
        } else {
          throw StateError('Field available should be boolean');
        }
        break;
      case 'lat':
        result.lat = serializers.deserialize(value,
            specifiedType: const FullType(double)) as double?;
        break;
      case 'long':
        result.long = serializers.deserialize(value,
            specifiedType: const FullType(double)) as double?;
        break;
    }
  }

  return result.build();
}