Дарт: Как получить данные без номера ID (строка)? - PullRequest
0 голосов
/ 26 декабря 2018

Таким образом, я смог получить данные для «местоположений» в этом json, используя число (0,1,2,3,4).Но мне не удалось напрямую получить данные из строки'rayer_times '.Есть ли способ решить эту проблему?

Я пробовал Text (data ["date"], потому что он не может сразу начать со строки и выдаст ошибку. Тип аргумента 'dart.core :: String' can 't присваивается типу параметра '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"];
    });

1 Ответ

0 голосов
/ 27 декабря 2018

Вам просто нужно внести два изменения.

Измените тип 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)),
                ],
              )),
        ),
...