fromJsonExpr method

String fromJsonExpr()

Right-hand side that reads this field out of a JSON map.

Implementation

String fromJsonExpr() {
  final key = "json['$name']";

  if (_isList) {
    if (isModel) {
      final mapEl = '(e) => $listElement.fromJson(e as Map<String, dynamic>)';
      return nullable
          ? "($key as List<dynamic>?)?.map($mapEl).toList()"
          : "($key as List<dynamic>).map($mapEl).toList()";
    }
    return nullable
        ? "($key as List<dynamic>?)?.cast<$listElement>()"
        : "($key as List<dynamic>).cast<$listElement>()";
  }

  if (isModel) {
    final parse = '$type.fromJson($key as Map<String, dynamic>)';
    return nullable ? '$key == null ? null : $parse' : parse;
  }

  if (_isDateTime) {
    return nullable
        ? "$key == null ? null : DateTime.parse($key as String)"
        : "DateTime.parse($key as String)";
  }

  return '$key as $fullType';
}