首页 > 解决方案 > 未处理的异常:类型“字符串”不是飞镖中“索引”错误的“int”类型的子类型

问题描述

我试图解码在我的请求后从服务器返回的 json 文件,但是当我想解码 json 时它显示错误,这是我的解码代码:

 var loginJson = jsonDecode(utf8.decode(response.bodyBytes));
      var model = idResponseModel(
          loginJson['id'],
          loginJson["fname"],
          loginJson["lname"],
          loginJson["nationalCode"],
          loginJson["gender"],
          loginJson["bornDate"],
          loginJson["phoneNumber"],
          loginJson["cardNumber"],
          loginJson["enabled"]);
      print(model.id);

控制台说它发生在loginJson['id']

来自服务器的id是这样的:

"id": "5de0a41e-9a6f-4b55-9567-024cd0fdbfc5"

标签: androidflutterdartpostmandecode

解决方案


此错误意味着loginJson.[]需要一个 int,而不是 String。所以它可能loginJson实际上是一个 List,而不是你期望的 Map。您可以通过打印检查loginJson.runtimeType


推荐阅读