V2TimValueCallback<T>.fromJson constructor

V2TimValueCallback<T>.fromJson(
  1. Map json
)

Implementation

V2TimValueCallback.fromJson(Map json) {
  json = Utils.formatJson(json);
  late dynamic fromJsonData;
  if (json['json_param'] == null) {
    fromJsonData = data;
  } else {
    final result = json['json_param'] as String;
    if (result.isNotEmpty && T != String) {
      dynamic jsonParam = jsonDecode(result);
      if (T == V2TimMessage) {
        fromJsonData = V2TimMessage.fromJson(jsonParam) as T;
      } else if (T == V2TimUserFullInfo) {
        fromJsonData = V2TimUserFullInfo.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimUserFullInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimUserFullInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimGroupInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimGroupInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimGroupInfoResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimGroupInfoResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<Map<String, String>>()) {
        fromJsonData = Map<String, String>.from(jsonParam) as T;
      } else if (T == _getT<Map<String, int>>()) {
        fromJsonData = Map<String, int>.from(jsonParam) as T;
      } else if (T == V2TimGroupMemberInfoResult) {
        fromJsonData = V2TimGroupMemberInfoResult.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimGroupMemberFullInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimGroupMemberFullInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimGroupMemberOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimGroupMemberOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == V2TimGroupApplicationResult) {
        fromJsonData = V2TimGroupApplicationResult.fromJson(jsonParam) as T;
      } else if (T == V2TimReceiveMessageOptInfo) {
        fromJsonData = V2TimReceiveMessageOptInfo.fromJson(jsonParam) as T;
      } else if (T == V2TimConversationResult) {
        fromJsonData = V2TimConversationResult.fromJson(jsonParam) as T;
      } else if (T == V2TimConversation) {
        fromJsonData = V2TimConversation.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimFriendInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFriendInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimFriendInfoResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFriendInfoResult.fromJson(e);
        }).toList() as T;
      } else if (T == V2TimFriendOperationResult) {
        fromJsonData = V2TimFriendOperationResult.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimFriendOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFriendOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == V2TimFriendCheckResult) {
        fromJsonData = V2TimFriendCheckResult.fromJson(jsonParam) as T;
      } else if (T == V2TimConversationOperationResult) {
        fromJsonData = V2TimConversationOperationResult.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimFriendCheckResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFriendCheckResult.fromJson(e);
        }).toList() as T;
      } else if (T == V2TimFriendApplicationResult) {
        fromJsonData = V2TimFriendApplicationResult.fromJson(jsonParam) as T;
      } else if (T == _getT<List<V2TimFriendGroup>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFriendGroup.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimMessage>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimMessage.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimOfficialAccountInfoResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimOfficialAccountInfoResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimMessageExtensionResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimMessageExtensionResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimMessageExtension>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimMessageExtension.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimConversation>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimConversation.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimReceiveMessageOptInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimReceiveMessageOptInfo.fromJson(e);
        }).toList() as T;
      } else if (T == V2TimMessageSearchResult) {
        fromJsonData = V2TimMessageSearchResult.fromJson(jsonParam) as T;
      } else if (T == V2GroupMemberInfoSearchResult) {
        fromJsonData = V2GroupMemberInfoSearchResult.fromJson(jsonParam);
      } else if (T == V2TimSignalingInfo) {
        fromJsonData = V2TimSignalingInfo.fromJson(jsonParam);
      } else if (T == V2TimMessageListResult) {
        fromJsonData = V2TimMessageListResult.fromJson(jsonParam);
      } else if (T == V2TimMessageOnlineUrl) {
        fromJsonData = V2TimMessageOnlineUrl.fromJson(jsonParam);
      } else if (T == V2TimMessageChangeInfo) {
        fromJsonData = V2TimMessageChangeInfo.fromJson(jsonParam);
      } else if (T == V2TimMsgCreateInfoResult) {
        fromJsonData = V2TimMsgCreateInfoResult.fromJson(jsonParam);
      } else if (T == V2TimUserInfoResult) {
        fromJsonData = V2TimUserInfoResult.fromJson(jsonParam);
      } else if (T == V2TimGroupMessageReadMemberList) {
        Map<String, dynamic> adjustJsonParam = Map.from({});
        adjustJsonParam['nextSeq'] = json['next_seq'];
        adjustJsonParam['isFinished'] = json['is_finished'];
        adjustJsonParam['memberInfoList'] = jsonParam;
        fromJsonData = V2TimGroupMessageReadMemberList.fromJson(adjustJsonParam);
      } else if (T == _getT<List<V2TimMessageReceipt>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimMessageReceipt.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimPermissionGroupInfoResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimPermissionGroupInfoResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimTopicInfoResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimTopicInfoResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimFollowOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFollowOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimTopicOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimTopicOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimGroupInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimGroupInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimUserStatus>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimUserStatus.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimMessageReactionResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimMessageReactionResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimConversationOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimConversationOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimFollowInfo>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFollowInfo.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimFollowTypeCheckResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimFollowTypeCheckResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimPermissionGroupMemberOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimPermissionGroupMemberOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimPermissionGroupOperationResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimPermissionGroupOperationResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<V2TimTopicPermissionResult>>()) {
        fromJsonData = (jsonParam as List).map((e) {
          return V2TimTopicPermissionResult.fromJson(e);
        }).toList() as T;
      } else if (T == _getT<List<String>>()) {
        fromJsonData = List.from(jsonParam).map((e) => e.toString()).toList();
      } else if (T == V2TimConversationFilter) {
        fromJsonData = V2TimConversationFilter.fromJson(jsonParam) as T;
      } else if (T == V2TimReceiveMessageOptInfo) {
        fromJsonData = V2TimReceiveMessageOptInfo.fromJson(jsonParam) as T;
      } else if (T == V2TimMessageReactionResult) {
        fromJsonData = V2TimMessageReactionResult.fromJson(jsonParam) as T;
      } else if (T == V2TimMessageReactionUserResult) {
        fromJsonData = V2TimMessageReactionUserResult.fromJson(jsonParam) as T;
      } else if (T == V2TimFollowInfo) {
        fromJsonData = V2TimFollowInfo.fromJson(jsonParam) as T;
      } else if (T == V2TimFollowTypeCheckResult) {
        fromJsonData = V2TimFollowTypeCheckResult.fromJson(jsonParam) as T;
      } else if (T == V2TimPermissionGroupMemberInfoResult) {
        fromJsonData = V2TimPermissionGroupMemberInfoResult.fromJson(jsonParam) as T;
      } else if (T == _getT<Map<String, bool>>()) {
        fromJsonData = Map<String, bool>.from(jsonParam) as T;
      } else {
        fromJsonData = jsonParam as T;
      }
    } else {
      fromJsonData = result;
    }
  }

  code = json['code'];
  desc = json['desc'] ?? '';
  if (fromJsonData is T) {
    data = fromJsonData;
  }
}