num_converter.dart 575 B

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