valueAs<T extends Object?> static method
T
valueAs<T extends Object?>(
- Object? value, {
- bool? allowHex,
- StringEncoding? encoding,
- bool asBytes = false,
Implementation
static T valueAs<T extends Object?>(Object? value,
{bool? allowHex, StringEncoding? encoding, bool asBytes = false}) {
assert((allowHex == null && encoding == null) || asBytes,
"allowHex and encoding must be use with asBytes");
if (value is T) {
return value;
}
if (value == null) {
if (_isNull<T>()) return null as T;
}
if (value == null) {
throw JSONHelperException("Failed to parse value as $T");
}
if (value is T) return value as T;
if (_isDynamic<T>()) {
return value as T;
} else if (_isDouble<T>()) {
return valueAsDouble<double>(value) as T;
} else if (_isString<T>()) {
return valueAsString<String>(value) as T;
} else if (_isInt<T>()) {
return valueAsInt<int>(value) as T;
} else if (_isBigInt<T>()) {
return valueAsBigInt<BigInt>(value) as T;
} else if (_isBool<T>()) {
return valueAsBool<bool>(value) as T;
} else if (_isMap<T>()) {
return valueAsMap<Map<dynamic, dynamic>>(value) as T;
} else if (_isMapStringDynamic<T>()) {
return valueAsMap<Map<String, dynamic>>(value) as T;
} else if (_isMapStringString<T>()) {
return valueAsMap<Map<String, String>>(value) as T;
} else if (_isList<T>()) {
return valueAsList<List>(value) as T;
} else if (_isListString<T>()) {
return valueAsList<List<String>>(value) as T;
} else if (_isListInt<T>()) {
if (asBytes) {
return valueAsBytes<List<int>>(value,
allowHex: allowHex ?? true, encoding: encoding) as T;
}
return valueAsList<List<int>>(value) as T;
} else if (_isListBigInt<T>()) {
return valueAsList<List<BigInt>>(value) as T;
} else if (_isListBool<T>()) {
return valueAsList<List<bool>>(value) as T;
} else if (_isListDouble<T>()) {
return valueAsList<List<double>>(value) as T;
} else if (_isListOfMap<T>()) {
return valueAsList<List<Map>>(value) as T;
} else if (_isListOfMapStringDynamic<T>()) {
return valueAsList<List<Map<String, dynamic>>>(value) as T;
} else if (_isListOfMapStringString<T>()) {
return valueAsList<List<Map<String, String>>>(value) as T;
}
throw JSONHelperException("Failed to parse object as $T");
}