在下面的情况下,这如何工作?

我尝试了很多方法,但我只是想不通。

另外,如何加载本地json文件并使用它的keys:values作为类?

class Countries{
  int id;
  String name;

  Countries(this.id,this.name);

  static Future<List<Countries>> getJsonCountries() async {
    String apiUrl = "https://gist.githubusercontent.com/keeguon/2310008/raw/bdc2ce1c1e3f28f9cab5b4393c7549f38361be4e/countries.json";
    http.Response resp = await http.get(apiUrl);
    return json.decode(resp.body);
  }

  static List<Countries> getCountries() {

        List<Countries> ls =  getJsonCountries() as List<Countries>; // Idk why this does not work ..
        return ls;
        // return <Countries>[ <-- this works fine ...
        //   Countries(1,'Morocco'),
        //   Countries(2,'France'),
        //   Countries(3,'USA'),
        //   Countries(4,'Tunisia'),
        // ];
  }
}

最佳答案

您的json文件格式不正确。字符串应用双引号引起来。这将立即阻止您解析Dart / Flutter中的json。值和键都必须用双引号括起来,以便Dart解析。

您可以自己检查它,方法是将json复制粘贴到此处并进行测试:https://jsonformatter.curiousconcept.com/

关于json - 如何获取|在Flutter中将json数据加载到List <myClass>确实可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59688929/

10-11 11:51