Как использовать экземпляр «Будущего» в качестве json(карта)

#flutter #dart

Вопрос:

Я получаю данные json по API и декодирую их в Map<String,dynamic>

 Future fetchMix() async {
  final response = await http.get(Uri.http('localhost:8008', 'api/mixs'));

  if (response.statusCode == 200) {
    Map<String, dynamic> json = jsonDecode(response.body);
    print (json['items'][0]) // OK, it correctly shows the data
    return json['items'];

  } else {
    // If the server did not return a 200 OK response,
    // then throw an exception.
    throw Exception('Failed to load API');
  }
}
 

затем позвоните fetchMix initState и введите данные в mixItems

 class _MyHomePageState extends State<MyHomePage> {
  Future<dynamic> mixItems;
  @override
  void initState() {
    super.initState();
    mixItems = fetchMix();
  }
 

затем используйте это, FutureBuilder но это не работает.

     child: FutureBuilder<dynamic>(
      future: mixItems,
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          print("snapshot has arrived!");
          print(mixItems);
          print(mixItems[0]);// it shows error.
          return Text(mixItems[0]);
        }
        return CircularProgressIndicator();
      },
    )
 

Однако печать(mixItems[0]) показывает ошибку

lib/main.dart:115:29: Ошибка: Оператор «[] «не определен для класса «Будущее».

Как я могу это исправить??

Комментарии:

1. Преобразуйте свой json в список объектов