json_convert_content.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // ignore_for_file: non_constant_identifier_names
  2. // ignore_for_file: camel_case_types
  3. // ignore_for_file: prefer_single_quotes
  4. import 'package:deus_app/generated/json/login_response_entity_helper.dart';
  5. // This file is automatically generated. DO NOT EDIT, all your changes would be lost.
  6. import 'package:deus_app/model/login_response_entity.dart';
  7. class JsonConvert<T> {
  8. T fromJson(Map<String, dynamic> json) {
  9. return _getFromJson<T>(runtimeType, this, json);
  10. }
  11. Map<String, dynamic> toJson() {
  12. return _getToJson<T>(runtimeType, this);
  13. }
  14. static _getFromJson<T>(Type type, data, json) {
  15. switch (type) {
  16. case LoginResponseEntity:
  17. return loginResponseEntityFromJson(data as LoginResponseEntity, json) as T;
  18. case LoginResponseData:
  19. return loginResponseDataFromJson(data as LoginResponseData, json) as T;
  20. case LoginResponseDataUser:
  21. return loginResponseDataUserFromJson(data as LoginResponseDataUser, json) as T; }
  22. return data as T;
  23. }
  24. static _getToJson<T>(Type type, data) {
  25. switch (type) {
  26. case LoginResponseEntity:
  27. return loginResponseEntityToJson(data as LoginResponseEntity);
  28. case LoginResponseData:
  29. return loginResponseDataToJson(data as LoginResponseData);
  30. case LoginResponseDataUser:
  31. return loginResponseDataUserToJson(data as LoginResponseDataUser);
  32. }
  33. return data as T;
  34. }
  35. //Go back to a single instance by type
  36. static _fromJsonSingle<M>( json) {
  37. String type = M.toString();
  38. if(type == (LoginResponseEntity).toString()){
  39. return LoginResponseEntity().fromJson(json);
  40. }
  41. if(type == (LoginResponseData).toString()){
  42. return LoginResponseData().fromJson(json);
  43. }
  44. if(type == (LoginResponseDataUser).toString()){
  45. return LoginResponseDataUser().fromJson(json);
  46. }
  47. return null;
  48. }
  49. //list is returned by type
  50. static M _getListChildType<M>(List data) {
  51. if(<LoginResponseEntity>[] is M){
  52. return data.map<LoginResponseEntity>((e) => LoginResponseEntity().fromJson(e)).toList() as M;
  53. }
  54. if(<LoginResponseData>[] is M){
  55. return data.map<LoginResponseData>((e) => LoginResponseData().fromJson(e)).toList() as M;
  56. }
  57. if(<LoginResponseDataUser>[] is M){
  58. return data.map<LoginResponseDataUser>((e) => LoginResponseDataUser().fromJson(e)).toList() as M;
  59. }
  60. throw Exception("not found");
  61. }
  62. static M fromJsonAsT<M>(json) {
  63. if (json is List) {
  64. return _getListChildType<M>(json);
  65. } else {
  66. return _fromJsonSingle<M>(json) as M;
  67. }
  68. }
  69. }