diff --git a/lib/login/login/entity/LoginData.dart b/lib/login/login/entity/LoginData.dart index bc8a5591..2a8c2c08 100755 --- a/lib/login/login/entity/LoginData.dart +++ b/lib/login/login/entity/LoginData.dart @@ -17,22 +17,36 @@ class LoginData { this.starchart}); LoginData.fromJson(dynamic json) { - accessToken = json['accessToken']; - userid = json['userid']; - expiresAt = json['expiresAt']; - expiresAtString = json['expiresAtString']; - mobile = json['mobile']; - headUrl = json['headUrl']; - email = json['email']; - nickname = json['nickname']; - haveSafeAnswer = json['haveSafeAnswer']; - uid = json['uid']; - isVip = json['isVip']; + accessToken = json['accessToken'] as String?; + userid = _parseInt(json['userid']); + expiresAt = _parseInt(json['expiresAt']); + expiresAtString = json['expiresAtString'] as String?; + mobile = json['mobile'] as String?; + headUrl = json['headUrl'] as String?; + email = json['email'] as String?; + nickname = json['nickname'] as String?; + haveSafeAnswer = json['haveSafeAnswer'] as bool?; + uid = _parseInt(json['uid']); + isVip = _parseInt(json['isVip']); starchart = json['starchart'] != null ? Starchart.fromJson(json['starchart']) : null; } + // 安全的整数解析方法 + int? _parseInt(dynamic value) { + if (value == null) return null; + if (value is int) return value; + if (value is String) { + try { + return int.parse(value); + } catch (e) { + return null; + } + } + return null; + } + String? accessToken; int? userid; int? expiresAt; diff --git a/lib/login/login/entity/LoginEntity.dart b/lib/login/login/entity/LoginEntity.dart index f8c2505d..234d2ae2 100755 --- a/lib/login/login/entity/LoginEntity.dart +++ b/lib/login/login/entity/LoginEntity.dart @@ -8,10 +8,24 @@ class LoginEntity { this.errorMsg,}); LoginEntity.fromJson(dynamic json) { - description = json['description']; - errorCode = json['errorCode']; + description = json['description'] as String?; + errorCode = _parseInt(json['errorCode']); data = json['data'] != null ? LoginData.fromJson(json['data']) : null; - errorMsg = json['errorMsg']; + errorMsg = json['errorMsg'] as String?; + } + + // 安全的整数解析方法 + int? _parseInt(dynamic value) { + if (value == null) return null; + if (value is int) return value; + if (value is String) { + try { + return int.parse(value); + } catch (e) { + return null; + } + } + return null; } String? description; int? errorCode; diff --git a/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart b/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart index bd3eb68b..9a80b7a1 100755 --- a/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart +++ b/lib/mine/minePersonInfo/minePersonInfoPage/minePersonInfo_entity.dart @@ -164,10 +164,10 @@ class Starchart { this.starchartPeerPrivateKey}); Starchart.fromJson(Map json) { - scdUrl = json['scdUrl']; - starchartId = json['starchartId']; - starchartPeerPublicKey = json['starchartPeerPublicKey']; - starchartPeerPrivateKey = json['starchartPeerPrivateKey']; + scdUrl = json['scdUrl'] as String?; + starchartId = json['starchartId'] as String?; + starchartPeerPublicKey = json['starchartPeerPublicKey'] as String?; + starchartPeerPrivateKey = json['starchartPeerPrivateKey'] as String?; } Map toJson() { diff --git a/lib/mine/mineSet/mineSet/mineSet_logic.dart b/lib/mine/mineSet/mineSet/mineSet_logic.dart index a7b19862..cceb359e 100755 --- a/lib/mine/mineSet/mineSet/mineSet_logic.dart +++ b/lib/mine/mineSet/mineSet/mineSet_logic.dart @@ -72,7 +72,7 @@ class MineSetLogic extends BaseGetXController { Future getUserInfoRequest() async { final MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo(); if (entity.errorCode!.codeIsSuccessful) { - Storage.setBool(saveIsVip, entity.data!.isVip! == 1); + Storage.setBool(saveIsVip, entity.data!.isVip == 1); state.amazonAlexaData.value = entity.data!.amazonAlexa ?? AmazonAlexa(); state.googleHomeData.value = entity.data!.googleHome ?? GoogleHome(); } diff --git a/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart b/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart index 2e024376..d8c7390f 100755 --- a/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart +++ b/lib/mine/valueAddedServices/valueAddedServicesList/valueAddedServicesList_logic.dart @@ -20,7 +20,7 @@ class ValueAddedServicesListLogic extends BaseGetXController { Future getUserInfoRequest() async { final MinePersonInfoEntity entity = await ApiRepository.to.getUserInfo(); if (entity.errorCode!.codeIsSuccessful) { - Storage.setBool(saveIsVip, entity.data!.isVip! == 1); + Storage.setBool(saveIsVip, entity.data!.isVip == 1); state.amazonAlexaData.value = entity.data!.amazonAlexa ?? AmazonAlexa(); state.googleHomeData.value = entity.data!.googleHome ?? GoogleHome(); }