converters.dart
903 Bytes
import 'package:json_annotation/json_annotation.dart';
import '../health/health_upload_models.dart';
class HealthDataUploadValueConverter
implements JsonConverter<HealthDataUploadValue, Object?> {
const HealthDataUploadValueConverter();
@override
HealthDataUploadValue fromJson(Object? json) {
if (json is int) {
return HealthDataUploadIntValue(json);
}
if (json is double) {
return HealthDataUploadDoubleValue(json);
}
if (json is num) {
return json is int
? HealthDataUploadIntValue(json.toInt())
: HealthDataUploadDoubleValue(json.toDouble());
}
throw FormatException('Invalid HealthDataUploadValue: $json');
}
@override
Object toJson(HealthDataUploadValue object) => switch (object) {
HealthDataUploadIntValue(:final value) => value,
HealthDataUploadDoubleValue(:final value) => value,
};
}