class FunctionsEntity { final String productUuid; final String productType; final List functions; FunctionsEntity({ required this.productUuid, required this.productType, required this.functions, }); factory FunctionsEntity.fromJson(Map json) => FunctionsEntity( productUuid: json["productUuid"], productType: json["productType"], functions: List.from( json["functions"].map((x) => DeviceFunction.fromJson(x)), ), ); Map toJson() => { "productUuid": productUuid, "productType": productType, "functions": List.from(functions.map((x) => x.toJson())), }; } class DeviceFunction { final String code; final String values; final String dataType; DeviceFunction({ required this.code, required this.values, required this.dataType, }); factory DeviceFunction.fromJson(Map json) => DeviceFunction( code: _formatCode(json["code"]), values: json["values"], dataType: json["dataType"], ); Map toJson() => { "code": code, "values": values, "dataType": dataType, }; static String _formatCode(String originalCode) { return originalCode .replaceAll('_', ' ') .split(' ') .map((word) => word[0].toUpperCase() + word.substring(1)) .join(' '); } }