【问题标题】:how to get value from list in dart/flutter?如何从飞镖/颤振中的列表中获取价值?
【发布时间】:2020-10-05 15:16:49
【问题描述】:

我正在尝试从外汇 API 获取一些货币数据。从网站获取数据后, 我在从 HTTP 请求作为数据后收到的列表中提取货币对的期望值时遇到问题。这就是我正在做的事情:

Future<void> getInfo() async {
try {
  print((url));  //url = EUR/USD, this value is comeing from a dropdown
  URL =
      "https://fcsapi.com/api-v2/forex/latest?symbol=$url&access_key=t58zo1uMFJZlNJxSrSmZv2qIUlSkCk9RAfCLkwnMwt1q1FFS";
  print((URL));
  Response response =
      await http.get(Uri.encodeFull(URL),
          headers: {"Accept": "application/json"});

  data = jsonDecode(response.body);
  print(data);

  List info = data['response'];
  print(info);
  
  double price = ......; // I don't know what to write here I have tried everything.
  print(price);

这里我想从“信息”列表中获取价格的值,但不知道在“双倍价格”中写什么

} catch (e) {
  print('error is : $e');
}
}

这是 consol 上的结果

I/flutter ( 4286): EUR/USD
I/flutter ( 4286): https://fcsapi.com/api-v2/forex/latest? 
symbol=EUR/USD&access_key=t58zo1uMFJZlNJxSrSmZv2qIUlSkCk9RAfCLkwnMwt1q1FFS

I/flutter ( 4286): {status: true, code: 200, msg: Successfully,
                   response: [{
                               id: 1,
                               price: 1.1788, 
                               change: +0.0072,
                               chg_per: +0.61%, 
                               last_changed: 2020-10-05 14:47:57, 
                               symbol: EUR/USD}], 
                               info: {server_time: 2020-10-05 14:49:12 UTC,
                               credit_count: 1, _t: 2020-10-05 14:49:12 UTC}}
   
        // this is printing due to print (data); statemet

 I/flutter ( 4286): [{
                       id: 1, 
                       price: 1.1788, // i want to print this value
                       change: +0.0072, 
                       chg_per: +0.61%, 
                       last_changed: 2020-10-05 14:47:57, 
                       symbol: EUR/USD}]

       // this is printing due to print (info); statemet, which is printing the responce of json

我想要什么:

我想在打印响应后在控制台中打印价格值,例如

     I/flutter ( 4286): 1.1788

【问题讨论】:

    标签: android flutter http dart flutter-layout


    【解决方案1】:

    这会起作用

    double price = info[0]['price']
    

    【讨论】:

      【解决方案2】:

      由于响应是一个列表/数组,您可以使用索引从列表中获取项目。

      var item = info[0]; // get first item from the list.
      double price = item["price"];
      print(price);
      

      【讨论】:

        猜你喜欢
        • 2019-12-29
        • 2021-01-24
        • 2020-12-31
        • 2021-07-27
        • 2020-08-12
        • 1970-01-01
        • 2020-09-11
        • 1970-01-01
        • 2021-11-23
        相关资源
        最近更新 更多