class OtaConfigResp { // 单例实例 static OtaConfigResp? _instance; // 单例访问器(增加空安全保护) static OtaConfigResp get instance { if (_instance == null) { throw Exception("User must be initialized first"); } return _instance!; } // 最终属性(不可变) final String? id; final int? factory; final int? devicetype; final String? devicename; final String? systemversion; final String? updatepackageaddress; final String? updatedescription; // 私有构造函数 OtaConfigResp._({ this.id, this.factory, this.devicetype, this.devicename, this.systemversion, this.updatepackageaddress, this.updatedescription, }); factory OtaConfigResp.fromJson(Map json) { print("数据获取fronTokenJson${json}"); // 修复1:安全获取嵌套的 user 字段 final infoData = json['product'] as Map?; // 允许空值 // 更新单例实例 return _instance = OtaConfigResp._( id: (infoData?['id'] as String?) ?? '', factory: (infoData?['factoryid'] as int?) ?? 0, devicetype: (infoData?['devicetype'] as int?) ?? 0, devicename: (infoData?['devicename'] as String?) ?? '', systemversion: (infoData?['systemversion'] as String?) ?? '', updatepackageaddress: (infoData?['updatepackageaddress'] as String?) ?? '', updatedescription: (infoData?['updatedescription'] as String?) ?? '', ); } // 完整的JSON序列化 Map toJson() => { 'user': { 'id': instance.id, 'factory': instance.factory, 'devicetype': instance.devicetype, 'devicename': instance.devicename, 'systemversion': instance.systemversion, 'updatepackageaddress': instance.updatepackageaddress, 'updatedescription': instance.updatedescription, } }; }