num_converter.dart 620 B

1234567891011121314151617181920212223242526272829303132
  1. import 'package:json_annotation/json_annotation.dart';
  2. import '../main.dart';
  3. /// Json解析num类型
  4. class NumConverter extends JsonConverter<num?, dynamic> {
  5. const NumConverter();
  6. @override
  7. num? fromJson(json) {
  8. if (json == null) return null;
  9. if (json is num) return json;
  10. // String
  11. if (json is String) {
  12. try {
  13. return num.parse(json);
  14. } catch (e) {
  15. logger.e(e);
  16. return null;
  17. }
  18. }
  19. // boolean false=0 true=1
  20. if (json is bool) {
  21. return json ? 1 : 0;
  22. }
  23. return null;
  24. }
  25. @override
  26. toJson(num? object) => object?.toString();
  27. }