fromJson static method
Returns a native instance of an OpenAPI class matching the targetType.
Implementation
static dynamic fromJson(
dynamic value,
String targetType, {
bool growable = false,
}) {
try {
switch (targetType) {
case 'String':
return value is String ? value : value.toString();
case 'int':
return value is int ? value : int.parse('$value');
case 'double':
return value is double ? value : double.parse('$value');
case 'bool':
if (value is bool) {
return value;
}
final valueString = '$value'.toLowerCase();
return valueString == 'true' || valueString == '1';
case 'DateTime':
return value is DateTime ? value : DateTime.tryParse(value);
case 'CreateUser':
return CreateUser.fromJson(value);
case 'Error':
return Error.fromJson(value);
case 'Group':
return Group.fromJson(value);
case 'GroupCreate':
return GroupCreate.fromJson(value);
case 'GroupCreated':
return GroupCreated.fromJson(value);
case 'GroupUpdate':
return GroupUpdate.fromJson(value);
case 'GroupsRequest':
return GroupsRequest.fromJson(value);
case 'Info':
return Info.fromJson(value);
case 'InviteUser':
return InviteUser.fromJson(value);
case 'OrgSignup':
return OrgSignup.fromJson(value);
case 'Role':
return Role.fromJson(value);
case 'RolesUpdate':
return RolesUpdate.fromJson(value);
case 'UpdateUser':
return UpdateUser.fromJson(value);
case 'User':
return User.fromJson(value);
case 'UserCreated':
return UserCreated.fromJson(value);
case 'UserSignup':
return UserSignup.fromJson(value);
default:
dynamic match;
if (value is List &&
(match = _regList.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
))
.toList(growable: growable);
}
if (value is Set &&
(match = _regSet.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
))
.toSet();
}
if (value is Map &&
(match = _regMap.firstMatch(targetType)?.group(1)) != null) {
return Map<String, dynamic>.fromIterables(
value.keys.cast<String>(),
value.values.map<dynamic>((dynamic v) => fromJson(
v,
match,
growable: growable,
)),
);
}
}
} on Exception catch (error, trace) {
throw ApiException.withInner(
HttpStatus.internalServerError,
'Exception during deserialization.',
error,
trace,
);
}
throw ApiException(
HttpStatus.internalServerError,
'Could not find a suitable class for deserialization',
);
}