【问题标题】:FLUTTER Problem with result of get data from web API从 Web API 获取数据的结果出现 FLUTTER 问题
【发布时间】:2020-02-04 12:25:21
【问题描述】:

我有一个 JSON

[ { "TenDantoc": "Khmer" }, { "TenDantoc": "Bana" }, { "TenDantoc": "Bố Y" },]

我已经写了下面的代码:

    if (response.statusCode == 200) {
      var test=json.decode(response.body);
      print(test[0]);
   }

返回的结果将是 {TenDantoc: Khmer}

我的问题是我希望返回的结果是高棉语,但我不能这样做。请帮我。 PS:我尝试了 print(test[0]["TenDanToc"] 但结果为空。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    因为它仍然不明白你在那个列表中的对象是什么。只需再解码 1 次:

      if (response.statusCode == 200) {
        var test=json.decode(response.body);
        var test2 = test[0];
        print(test2["TenDanToc"]);
      }
    

    【讨论】:

    • 我有错误类型 '_InternalLinkedHashMap' 不是类型 'String' 的子类型
    • 我已经更新了我的答案,请查看@Nguyen Khoa
    • 这次它会在我的编辑中工作,我已经检查了我的 api。你不能使用 test[0]["TenDanToc"]
    • 它仍然无法正常工作@hoangquyy。它将返回空值。这是我的代码: if (response.statusCode == 200) { var test = json.decode(response.body); var test2 = test[0]; print(test2["TenDanToc"]); } else { 打印(response.statusCode); }
    【解决方案2】:

    如果我理解正确,你得到的是{TenDantoc: Khmer},但你想要的是Khmer。为此,您可以执行以下操作:

    void main()
    {
    
      List<Map<String, dynamic>> user = [ { "TenDantoc": "Khmer" }, { "TenDantoc": "Bana" }, { "TenDantoc": "Bố Y" }];
    
     Map<String,dynamic> objectValue = user[0];
      print(objectValue["TenDantoc"]); 
    }
    

    所以这里首先使用List 类中的get 运算符,它返回map。然后您可以使用map 类型的变量objectValue 来检索键TenDantoc 的值。

    print() 方法将返回 Khmer

    【讨论】:

    • 正是我想要你所说的结果,但是当我按照你所说的那样做时,它返回错误“type 'List' is not a subtype of type 'List >'"
    • 你能告诉我给你这个错误的代码吗?上面的代码我在dartpad.dartlang.org 上试过,它工作正常
    • if (response.statusCode == 200) { var test = json.decode(response.body); var test2 = test[0]; print(test2["TenDanToc"]); } else { 打印(response.statusCode); }
    猜你喜欢
    • 2019-10-10
    • 2019-03-05
    • 2020-06-25
    • 2020-08-17
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多