Dart:如何获取没有数字id(字符串)的数据?

问题描述 投票:-2回答:1

所以我能够使用数字(0,1,2,3,4)获取此json中“位置”的数据。但我无法直接从'prayer_times'字符串中获取数据。有什么方法可以解决这个问题吗?

我试过Text(data [“date”]因为它不能立即以字符串开头并且会给出错误参数类型'dart.core :: String'不能分配给参数类型'dart.core :: int ”。

api工作请检查链接谢谢。

数据获取显示代码

          Card(
                child: Container(
                    padding: EdgeInsets.all(15.0),
                    child: Row(
                      children: <Widget>[
                        Text("Name: "),
                        Text(data[0]["date"],
                            style: TextStyle(
                                fontSize: 18.0, color: Colors.black87)),
                      ],
                    )),
              ),

API URI代码

  final String url = "http://api.azanpro.com/times/today.json?zone=ngs02&format=12-hour";
  List data;

  Future<String> getSWData() async {
    var res = await http
        .get(Uri.encodeFull(url), headers: {"Accept": "application/json"});

    setState(() {
      var resBody = json.decode(res.body);
      data = resBody["prayer_times"];
    });
dart dart-pub
1个回答
0
投票

您只需进行两项更改即可。

data的类型更改为Map,并根据您的使用情况,将其初始化为默认值:

Map<String, dynamic> data = {'date': "-------"};

然后直接在data获取日期字段

        Card(
          child: Container(
              padding: EdgeInsets.all(15.0),
              child: Row(
                children: <Widget>[
                  Text("Name: "),
                  Text(data["date"],
                      style: TextStyle(
                          fontSize: 18.0, color: Colors.black87)),
                ],
              )),
        ),
© www.soinside.com 2019 - 2024. All rights reserved.