deserializeByClassName method
Deserialize the provided json data by using the className stored in the data.
Implementation
dynamic deserializeByClassName(Map<String, dynamic> data) {
var className = data['className'];
var raw = data['data'];
switch (className) {
case 'null':
return null;
case 'int':
return deserialize<int>(raw);
case 'double':
return deserialize<double>(raw);
case 'String':
return deserialize<String>(raw);
case 'bool':
return deserialize<bool>(raw);
case 'DateTime':
return deserialize<DateTime>(raw);
case 'ByteData':
return deserialize<ByteData>(raw);
case 'Duration':
return deserialize<Duration>(raw);
case 'UuidValue':
return deserialize<UuidValue>(raw);
case 'Uri':
return deserialize<Uri>(raw);
case 'BigInt':
return deserialize<BigInt>(raw);
case 'Vector':
return deserialize<Vector>(raw);
case 'HalfVector':
return deserialize<HalfVector>(raw);
case 'SparseVector':
return deserialize<SparseVector>(raw);
case 'Bit':
return deserialize<Bit>(raw);
case 'List' when raw is List:
return raw.map(deserializeDynamicFieldValue).toList();
case 'Set' when raw is List:
return raw.map(deserializeDynamicFieldValue).toSet();
case 'Map' when raw is Map<String, dynamic>:
return raw.map((k, v) => MapEntry(k, deserializeDynamicFieldValue(v)));
case 'Map' when raw is List:
return Map<dynamic, dynamic>.fromEntries(
raw.cast<Map<String, dynamic>>().map(
(e) => MapEntry(
deserializeDynamicFieldValue(e['k']),
deserializeDynamicFieldValue(e['v']),
),
),
);
}
throw FormatException('No deserialization found for type named $className');
}