fromJSON method

  1. @override
dynamic fromJSON(
  1. dynamic jsonValue,
  2. DeserializationContext context
)
override

Implementation

@override
dynamic fromJSON(dynamic jsonValue, DeserializationContext context) {
  final delimiter =
      getConverterParameter('delimiter', context.jsonPropertyMeta);
  if (delimiter != null && jsonValue is String) {
    jsonValue = jsonValue.split(delimiter);
  }
  if (_instance != null && jsonValue is Iterable && jsonValue != _instance) {
    if (_instance is List) {
      (_instance as List).clear();
      for (var item in jsonValue) {
        (_instance as List)
            .add(_deserializeObject(item, context, context.typeInfo!.type!));
      }
    }
    if (_instance is Set) {
      (_instance as Set).clear();
      for (var item in jsonValue) {
        (_instance as Set)
            .add(_deserializeObject(item, context, context.typeInfo!.type!));
      }
    }
    return _instance;
  } else if (jsonValue is Iterable) {
    return jsonValue
        .map((item) => _deserializeObject(
            item, context, context.typeInfo!.parameters.first))
        .toList();
  }
  return jsonValue;
}