33 lines
963 B
Dart
33 lines
963 B
Dart
class JsonSafe {
|
|
static String asString(dynamic value, [String fallback = '']) {
|
|
if (value is String) return value;
|
|
return fallback;
|
|
}
|
|
|
|
static String? asStringOrNull(dynamic value) {
|
|
if (value is String) return value;
|
|
return null;
|
|
}
|
|
|
|
static int asInt(dynamic value, [int fallback = 0]) {
|
|
if (value is int) return value;
|
|
if (value is num) return value.toInt();
|
|
if (value is String) return int.tryParse(value) ?? fallback;
|
|
return fallback;
|
|
}
|
|
|
|
static double asDouble(dynamic value, [double fallback = 0.0]) {
|
|
if (value is double) return value;
|
|
if (value is num) return value.toDouble();
|
|
if (value is String) return double.tryParse(value) ?? fallback;
|
|
return fallback;
|
|
}
|
|
|
|
static bool asBool(dynamic value, [bool fallback = false]) {
|
|
if (value is bool) return value;
|
|
if (value is int) return value != 0;
|
|
if (value is String) return value.toLowerCase() == 'true';
|
|
return fallback;
|
|
}
|
|
}
|