Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 通过flatter中的API调用绘制饼图_Flutter - Fatal编程技术网

Flutter 通过flatter中的API调用绘制饼图

Flutter 通过flatter中的API调用绘制饼图,flutter,Flutter,我试图在饼图中显示一些来自API的数据,但问题是如何将JSON数据应用到饼图中。我为此创建了一个自定义 从API获取数据的异步函数 _getData() async{ final response = await http.get('https://api.myjson.com/bins/16e68w'); Map<String,dynamic> map = json.decode(response.body); return map; } 在图

我试图在饼图中显示一些来自API的数据,但问题是如何将JSON数据应用到饼图中。

我为此创建了一个自定义

从API获取数据的异步函数

    _getData() async{
    final response = await http.get('https://api.myjson.com/bins/16e68w');
    Map<String,dynamic> map = json.decode(response.body);
    return map;
  }
图表系列中格式化数据。
列表。

我们将为数据生成LinearSales对象列表

    static List<charts.Series<LinearSales, int>> dataList(Map<String, dynamic> apiData) {
      List<LinearSales> list = new List();

      for(int i=0; i<apiData['data'].length; i++)
        list.add(new LinearSales(i, apiData['data'][i]));

      return [
        new charts.Series<LinearSales, int>(
          id: 'Sales',
          domainFn: (LinearSales sales, _) => sales.year,
          measureFn: (LinearSales sales, _) => sales.sales,
          data: list,
          labelAccessorFn: (LinearSales row, _) => '${row.year}: ${row.sales}',
        )
      ];
    }
  }

class LinearSales {
  final int year;
  final int sales;
  LinearSales(this.year, this.sales);
}
静态列表数据列表(映射数据){
列表=新列表();
对于(int i=0;i

我已经为此创建了一个自定义

从API获取数据的异步函数

    _getData() async{
    final response = await http.get('https://api.myjson.com/bins/16e68w');
    Map<String,dynamic> map = json.decode(response.body);
    return map;
  }
图表系列中格式化数据。
列表。

我们将为数据生成LinearSales对象列表

    static List<charts.Series<LinearSales, int>> dataList(Map<String, dynamic> apiData) {
      List<LinearSales> list = new List();

      for(int i=0; i<apiData['data'].length; i++)
        list.add(new LinearSales(i, apiData['data'][i]));

      return [
        new charts.Series<LinearSales, int>(
          id: 'Sales',
          domainFn: (LinearSales sales, _) => sales.year,
          measureFn: (LinearSales sales, _) => sales.sales,
          data: list,
          labelAccessorFn: (LinearSales row, _) => '${row.year}: ${row.sales}',
        )
      ];
    }
  }

class LinearSales {
  final int year;
  final int sales;
  LinearSales(this.year, this.sales);
}
静态列表数据列表(映射数据){
列表=新列表();

对于(int i=0;i

您是否为此使用了任何软件包?是的,我使用了charts_颤振和JSON解析Http,您是否为此使用了任何软件包?是的,我使用charts_颤振和JSON解析Http,我已经更新了答案。现在它从API获取数据。希望这能解决您的问题。我想要完整的示例,包括main方法。我在调试时遇到了问题ng.出现完整代码异常。\u TypeError(类型“List”不是类型“Map”的子类型)我认为您传递的是数组而不是Map。请使用新的Flatter项目进行尝试。只需将准确的代码粘贴到“main.dart”中即可。这是一个完美的工作代码。我已经更新了答案。现在它从API获取数据。希望这能解决您的问题。我需要包含main方法的完整示例。我在调试时遇到问题。出现了完整的代码异常。\u TypeError(type“List”不是type“Map”的子类型)我想你通过的是数组而不是贴图。用一个新的颤振项目试试。只需将准确的代码粘贴到“main.dart”中。这是一个完美的工作代码。