data_parser
A package for parsing and converting various data types in Flutter, including JSON, HTTP responses, and lists. It provides a set of utility classes and extensions for easier data handling.
Features
- Parse HTTP response data (
IHttpResponseDataParser
) - Parse list data with different conversion methods (
IListDataParserService
) - Utility extensions for converting files to Base64 (
FileToBase64String
) - Helper classes for converting
Color
,IconData
, andTextStyle
to and from JSON - Utility functions for enum conversions
Installation
Add the following dependency to your pubspec.yaml
file:
dependencies:
data_parser: latest_version
Parsing HTTP Responses
import 'package:data_parser/data/data_sources/list_data_parser_service_impl.dart';
final parser = HttpResponseDataParserImpl();
final responseData = parser.parseHttpResponse({
'status': true,
'data': {
'key1': 'value1',
'key2': 'value2',
}
});
print(responseData); // Outputs: {key1: value1, key2: value2}
Parsing Lists
import 'package:data_parser/data/data_sources/list_data_parser_service_impl.dart';
final listParser = ListDataParserServiceImpl<MyModel>();
List<MyModel>? parsedList = listParser.parseFutureDataList(
mapList: myJsonList,
converter: (item) => MyModel.fromJson(item),
);
print(parsedList);
);
Converting Files to Base64
import 'dart:io';
import 'package:data_parser/extensions/utility_parsers/file_extensions.dart';
File myFile = File('path_to_your_file');
String base64String = await myFile.toBase64String();
Working with Colors and Icons
Color color = ColorJsonHelper.fromJson(0xFF123456);
Map<String, dynamic>? iconJson = IconDataJsonHelper.toJson(Icons.home);
Enum Conversion
import 'package:data_parser/utils/enum_from_string.dart';
enum MyEnum { first, second }
MyEnum? enumValue = enumFromString(MyEnum.values, 'first');
print(enumValue); // MyEnum.first
String? enumString = EnumUtils.enumToString(MyEnum.first);
print(enumString); // first
Convert Color to and from JSON:
import 'package:data_parser/helper/color_json_helper.dart';
Color color = Colors.blue;
int? colorJson = ColorJsonHelper.toJson(color);
Color? parsedColor = ColorJsonHelper.fromJson(colorJson);
Convert IconData to and from JSON:
import 'package:data_parser/helper/icon_data_json_helper.dart';
IconData icon = Icons.star;
Map<String, dynamic>? iconJson = IconDataJsonHelper.toJson(icon);
IconData? parsedIcon = IconDataJsonHelper.fromJson(iconJson);
Convert TextStyle to and from JSON:
import 'package:data_parser/helper/text_style_json_helper.dart';
TextStyle textStyle = TextStyle(color: Colors.red, fontSize: 20);
Map<String, dynamic>? textStyleJson = TextStyleJsonHelper.toJson(textStyle);
TextStyle? parsedTextStyle = TextStyleJsonHelper.fromJson(textStyleJson);
Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
License
Make sure to adjust the version number in the pubspec.yaml
file and the usage examples based on your specific implementation!
Libraries
- data/data_sources/http_response_data_parser_impl
- data/data_sources/i_data_sources/i_http_response_data_parser
- data/data_sources/i_data_sources/i_list_data_parser_service
- data/data_sources/list_data_parser_service_impl
- data_parser
- extensions/dart_data_type_parsers/double_extensions
- extensions/dart_data_type_parsers/int_extensions
- extensions/dart_data_type_parsers/string_extensions
- extensions/helper_data/irregular_plurals
- extensions/json_parsers/future_extensions
- extensions/json_parsers/list_of_maps_extension
- extensions/json_parsers/stream_extensions
- extensions/utility_parsers/file_extensions
- helper/icon_data_json_helper
- helper/text_style_json_helper
- utils/convert_data_type
- utils/enum_from_string
- utils/enum_utils