Closed caneva20 closed 3 years ago
Hi @k-paxian!
Today I faced a problem when using a custom enum converter. If you configure the mapper to use enumConverterNumeric and then try to deserialize the json value it fails.
enumConverterNumeric
Enum:
@jsonSerializable enum MyEnum { valueA, valueB }
void main() { initializeJsonMapper(adapters: [ JsonMapperAdapter( converters: { Enum: enumConverterNumeric, }, ) ]); var json = JsonMapper.serialize(MyEnum.valueA); //This fails var myEnum = JsonMapper.deserialize<MyEnum>(json); }
This code throws:
E/flutter ( 6045): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'String' is not a subtype of type 'MyEnum' E/flutter ( 6045): #0 JsonMapper.deserialize (package:dart_json_mapper/src/mapper.dart:59:5) E/flutter ( 6045): #1 main (package:redacted/main.dart:22:25) E/flutter ( 6045): #2 _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:231:25) E/flutter ( 6045): #3 _rootRun (dart:async/zone.dart:1190:13) E/flutter ( 6045): #4 _CustomZone.run (dart:async/zone.dart:1093:19) E/flutter ( 6045): #5 _runZoned (dart:async/zone.dart:1630:10) E/flutter ( 6045): #6 runZonedGuarded (dart:async/zone.dart:1618:12) E/flutter ( 6045): #7 _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:223:5) E/flutter ( 6045): #8 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:301:19) E/flutter ( 6045): #9 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
Thank you for letting me know. Should be fixed now.
Hi @k-paxian!
Today I faced a problem when using a custom enum converter. If you configure the mapper to use
enumConverterNumeric
and then try to deserialize the json value it fails.Minimum reproducible code:
Enum:
This code throws: