deserialize<T> method
Deserialize the provided json data to an object of type t or T.
Implementation
T deserialize<T>(dynamic data, [Type? t]) {
t ??= T;
if (_isNullableType<int>(t)) {
return data;
} else if (_isNullableType<double>(t)) {
return (data as num?)?.toDouble() as T;
} else if (_isNullableType<String>(t)) {
return data;
} else if (_isNullableType<bool>(t)) {
if (data == null) return null as T;
return BoolJsonExtension.fromJson(data) as T;
} else if (_isNullableType<DateTime>(t)) {
if (data == null) return null as T;
return DateTimeJsonExtension.fromJson(data) as T;
} else if (_isNullableType<ByteData>(t)) {
if (data == null) return null as T;
return ByteDataJsonExtension.fromJson(data) as T;
} else if (_isNullableType<Duration>(t)) {
if (data == null) return null as T;
return DurationJsonExtension.fromJson(data) as T;
} else if (_isNullableType<UuidValue>(t)) {
if (data == null) return null as T;
return UuidValueJsonExtension.fromJson(data) as T;
} else if (_isNullableType<Vector>(t)) {
if (data == null) return null as T;
return VectorJsonExtension.fromJson(data) as T;
} else if (_isNullableType<HalfVector>(t)) {
if (data == null) return null as T;
return HalfVectorJsonExtension.fromJson(data) as T;
} else if (_isNullableType<SparseVector>(t)) {
if (data == null) return null as T;
return SparseVectorJsonExtension.fromJson(data) as T;
} else if (_isNullableType<Bit>(t)) {
if (data == null) return null as T;
return BitJsonExtension.fromJson(data) as T;
} else if (_isNullableType<Uri>(t)) {
if (data == null) return null as T;
return Uri.parse(data) as T;
} else if (_isNullableType<BigInt>(t)) {
if (data == null) return null as T;
return BigInt.parse(data) as T;
}
throw DeserializationTypeNotFoundException(
type: t,
);
}