flutter - Flutter 中的 _CastError(类型 'String' 不是类型转换中类型 'Map<String, dynamic>' 的子类型)

我正在为我的请求使用 API。我将 API 的响应设为 JSON 但由于此错误,我无法 decode JSON 映射到 Map

_CastError(类型'String'不是类型转换中'Map<String,dynamic>'类型的子类型)

.这是我的 API 服务

Future<LoginResponseModel> login(LoginRequestModel requestModel) async {
String url = "myapi";
var headerss = {HttpHeaders.contentTypeHeader: 'application/json'};
final response =
     await http.post(Uri.parse(url),
     body: jsonEncode(requestModel.toJson()),
     headers: headerss
     );
if (response.statusCode == 200 || response.statusCode == 400) {
  final Map<String, dynamic> test = jsonDecode(response.body) as Map<String, dynamic>;
  return LoginResponseModel.fromJson(test);  
  }  
else {
  print(response.body);
  throw Exception();
     } 
}

这是我的响应模型

class LoginResponseModel {
  late final String token;
  late final String error;

  LoginResponseModel({
    required this.token,
    required this.error,
  });

 factory LoginResponseModel.fromJson(Map<String, dynamic> json) {
   return LoginResponseModel(
     token: json["token"] != null ? json["token"] : "",
     error: json["error"] != null ? json["error"] : "");
 }
}

我试过的是:

- 在返回内部解码

- 解码而不给出类型 Map<String,dynamic>

- 使用 jsonEncode 和 json.encode 进行解码

任何帮助都是极好的。

回答1

尝试这个...

LoginResponseModel loginResponseModel=LoginResponseModel.fromJson(jsonDecode(response.body));