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 'AccessLevel':
return AccessLevelTypeAssetsTransformer().decode(value);
case 'Device':
return Device.fromJson(value);
case 'DeviceModel':
return DeviceModel.fromJson(value);
case 'DeviceModelMetricItemRequest':
return DeviceModelMetricItemRequest.fromJson(value);
case 'DeviceModelMetricItemResponse':
return DeviceModelMetricItemResponse.fromJson(value);
case 'DeviceModelRequestBodyData':
return DeviceModelRequestBodyData.fromJson(value);
case 'DeviceRequestBody':
return DeviceRequestBody.fromJson(value);
case 'RequestConnectDisconnectBody':
return RequestConnectDisconnectBody.fromJson(value);
case 'RequestConnectDisconnectBodyData':
return RequestConnectDisconnectBodyData.fromJson(value);
case 'Error':
return Error.fromJson(value);
case 'DeviceModelRequestBody':
return DeviceModelRequestBody.fromJson(value);
case 'DeviceRequestBodyData':
return DeviceRequestBodyData.fromJson(value);
case 'GatewayModelsRequestBody':
return GatewayModelsRequestBody.fromJson(value);
case 'GatewayAssignLicenseRequestBody':
return GatewayAssignLicenseRequestBody.fromJson(value);
case 'GatewayAssignLicenseRequestBodyData':
return GatewayAssignLicenseRequestBodyData.fromJson(value);
case 'GatewayDisconnectLicenseRequestBody':
return GatewayDisconnectLicenseRequestBody.fromJson(value);
case 'GatewayDisconnectLicenseRequestBodyData':
return GatewayDisconnectLicenseRequestBodyData.fromJson(value);
case 'GatewayRequestBody':
return GatewayRequestBody.fromJson(value);
case 'LicenseRegisterWithTokenRequestBody':
return LicenseRegisterWithTokenRequestBody.fromJson(value);
case 'ManufacturersRequestBody':
return ManufacturersRequestBody.fromJson(value);
case 'PlantPostRequestBody':
return PlantPostRequestBody.fromJson(value);
case 'AssetsTransformsRequestBody':
return AssetsTransformsRequestBody.fromJson(value);
case 'Gateway':
return Gateway.fromJson(value);
case 'GatewayModel':
return GatewayModel.fromJson(value);
case 'GatewayModelRequestBodyData':
return GatewayModelRequestBodyData.fromJson(value);
case 'GatewayRequestBodyData':
return GatewayRequestBodyData.fromJson(value);
case 'GatewayStatus':
return GatewayStatus.fromJson(value);
case 'AssetsGroup':
return AssetsGroup.fromJson(value);
case 'PlantBasic':
return PlantBasic.fromJson(value);
case 'LicenseGateway':
return LicenseGateway.fromJson(value);
case 'LicenseRequestAssignBody':
return LicenseRequestAssignBody.fromJson(value);
case 'License':
return License.fromJson(value);
case 'LogbotLink':
return LogbotLink.fromJson(value);
case 'Manufacturer':
return Manufacturer.fromJson(value);
case 'ManufacturerRequestBodyData':
return ManufacturerRequestBodyData.fromJson(value);
case 'MetricCategory':
return MetricCategoryTypeAssetsTransformer().decode(value);
case 'AssetsMetricModbusRTU':
return AssetsMetricModbusRTU.fromJson(value);
case 'AssetsMetricModbusRTUResponse':
return AssetsMetricModbusRTUResponse.fromJson(value);
case 'AssetsMetricModbusTCP':
return AssetsMetricModbusTCP.fromJson(value);
case 'AssetsMetricModbusTCPRequestBody':
return AssetsMetricModbusTCPRequestBody.fromJson(value);
case 'AssetsMetricModbusTCPResponse':
return AssetsMetricModbusTCPResponse.fromJson(value);
case 'AssetsMetricOPCUA':
return AssetsMetricOPCUA.fromJson(value);
case 'AssetsMetricOPCUARequestBody':
return AssetsMetricOPCUARequestBody.fromJson(value);
case 'AssetsMetricOPCUAResponse':
return AssetsMetricOPCUAResponse.fromJson(value);
case 'MetricPermission':
return MetricPermissionTypeAssetsTransformer().decode(value);
case 'AssetsMetricS7':
return AssetsMetricS7.fromJson(value);
case 'AssetsMetricS7RequestBody':
return AssetsMetricS7RequestBody.fromJson(value);
case 'AssetsMetricS7Response':
return AssetsMetricS7Response.fromJson(value);
case 'StaticTag':
return StaticTag.fromJson(value);
case 'Tags':
return Tags.fromJson(value);
case 'ModbusRTURequestBody':
return ModbusRTURequestBody.fromJson(value);
case 'Plant':
return Plant.fromJson(value);
case 'PlantRequestBodyData':
return PlantRequestBodyData.fromJson(value);
case 'AssetsProtocolEnum':
return AssetsProtocolEnumTypeAssetsTransformer().decode(value);
case 'RetPolicy':
return RetPolicyTypeAssetsTransformer().decode(value);
case 'SpecialUuid':
return SpecialUuid.fromJson(value);
case 'SupportedGateway':
return SupportedGateway.fromJson(value);
case 'SupportedGatewayRequestBody':
return SupportedGatewayRequestBody.fromJson(value);
case 'AssetsTransform':
return AssetsTransform.fromJson(value);
case 'AssetsTransformsRequestBodyData':
return AssetsTransformsRequestBodyData.fromJson(value);
case 'Unit':
return UnitTypeAssetsTransformer().decode(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',
);
}