首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >_InternalLinkedHashMap<String,dynamic>‘不是“List<Map<dynamic,dynamic>>”类型的子类型

_InternalLinkedHashMap<String,dynamic>‘不是“List<Map<dynamic,dynamic>>”类型的子类型
EN

Stack Overflow用户
提问于 2018-10-30 11:35:42
回答 1查看 412关注 0票数 0
代码语言:javascript
复制
    void makeLoginReq() async {
    String url = 'https://travel.prabidhee.com/api/login';
    Map map = {
      'email': email,
      'password': password,
    };
    print(await apiRequest(url, map));
    final response = await apiRequest(url, map);
    print(response);
    List<Map> reply = json.decode(response);
    List<UserModelData> result = reply.map((item) => new UserModelData.fromJson(item)).toList();
    print(result[0].accessToken);
  }

  Future<String> apiRequest(String url, Map jsonMap) async {
    HttpClient httpClient = new HttpClient();
    HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));
    request.headers.set('Accept', 'application/json');
    request.headers.set('Content-type', 'application/json');
    request.add(utf8.encode(json.encode(jsonMap)));
    HttpClientResponse response = await request.close();
    var reply = await response.transform(utf8.decoder).join();
    httpClient.close();
    print(reply);
    return (reply);
  }
}

这是远程服务器中登录请求的函数。在登录之后,json响应被解码并存储在应答变量中。现在我想要提取access_token,token_type.从反应来看。我怎么能这么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-30 11:56:23

正如例外情况所显示的那样,您的问题是要将一个映射转换成一个列表,这是不可能的。就像你不能把一根线投射到一个整数,或者你不能把一条雨虫当作一匹马,骑在它上直到日落。

问题当然是为什么会这样:

json.decode(response)返回一个映射,但是要分配这个映射的变量可能只存储一个列表。

例如,如果您的响应如下所示:

代码语言:javascript
复制
{
    "body": [
        "Alisa",
        "Alex",
        "Boby",
        "Monica"
    ]
}

然后您的json.decode(response)将是Map<String, List>("body" to ["Alisa", ...]),因此body将映射到名称。

假设您希望将列表与另一个json隔离开来,您可以只执行json.decode(response).get("body")操作,或者如果您的json看起来不一样,还可以通过调用json.decode(response).values()json.decode(response).keys()来获取映射中的所有值或键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53063449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档