deserialize<T> method
T?
deserialize<
T>( - dynamic jsonVal, [
- String? typeName
])
Implementation
T? deserialize<T>(dynamic jsonVal, [String? typeName]) {
if (jsonVal == null) return null;
final decodedJson = jsonVal is String ? json.decode(jsonVal) : jsonVal;
final isList = _isList<T>(typeName);
assert(!isList || (isList && decodedJson is List));
if (isList) {
final listCastFn = _listCasts[typeName ?? T.toString()];
assert(listCastFn != null);
final deserializedList = (decodedJson as List)
.map((json) =>
_deserializeFromMapWithType(typeName ?? T.toString(), json))
.toList();
return listCastFn != null ? listCastFn(deserializedList) as T : null;
}
return deserializeFromMap(decodedJson, typeName);
}