как отображать данные json во флаттере таблицы

Я хочу отобразить все данные json из базы данных в таблице, но меня смущает, что решение от json представляет собой простой текст. Я действительно не понимаю, как использовать карту, потому что это приводит к ошибке моего кода

            FutureBuilder(
                future: UserController.getActivity(_selectedUser),
                builder: (context, snapshot) {
                  if (snapshot.hasData) {
                    var item = snapshot.data;
                    Map<String, dynamic> activity = item[snapshot]['activity'];
                    //print(snapshot.data.toString());
                    print(activity);
                    return Column(
                      mainAxisSize: MainAxisSize.min,
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Table(
                          defaultColumnWidth: FixedColumnWidth(150.0),
                          border: TableBorder(
                            horizontalInside: BorderSide(
                              color: Colors.black,
                              style: BorderStyle.solid,
                              width: 1.0,
                            ),
                            verticalInside: BorderSide(
                              color: Colors.black,
                              style: BorderStyle.solid,
                              width: 1.0,
                            ),
                          ),
                          children: [
                            TableRow(children: [
                              TableCell(
                                child: Row(
                                  mainAxisAlignment:
                                      MainAxisAlignment.spaceAround,
                                  children: <Widget>[
                                     new Text(snapshot.data["project"]),
                                  ],
                                ),
                              )
                            ])
                          ],
                        )
                      ],
                    );
                  } else {
                    return Center(
                      child: Text("No data displayed"),
                    );
                  }
                },
              ),

когда я пытаюсь использовать этот код, появляется ошибка _FutureBuilderState # 71363): ожидается значение типа int, но имеет один из типов AsyncSnapshot


person OceanL    schedule 05.07.2019    source источник


Ответы (1)


Ошибка в этой строке:

Map<String, dynamic> activity = item[snapshot]['activity'];

Вы пытаетесь использовать AsyncSnapshot в качестве ключа объекта. Вы должны использовать только числа для позиций или буквальных ключей, в зависимости от структуры Json, который у вас есть в качестве ответа.

person Luis Miguel Mantilla    schedule 05.07.2019
comment
Да, все данные, которые у вас есть в ответе, находятся в элементе. - person Luis Miguel Mantilla; 05.07.2019