Translation.fromJson constructor

Translation.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory Translation.fromJson(Map<String, dynamic> json) {
  final List<THLanguageItem> languages = [];
  final Map<String, Map<String, String>> translationsDict = {};

  if (json.containsKey('languages')) {
    final languagesJson = json['languages'] as List<dynamic>;
    for (final languageJson in languagesJson) {
      languages.add(THLanguageItem.fromJson(languageJson as Map<String, dynamic>));
    }
  }

  json.forEach((key, value) {
    if (key != 'languages' && value is Map<String, dynamic>) {
      try {
        final translationMap = <String, String>{};
        value.forEach((k, v) {
          if (v is String) translationMap[k] = v;
        });
        translationsDict[key] = translationMap;
      } catch (_) {}
    }
  });

  return Translation(languages: languages, translationsByCode: translationsDict);
}