Ошибка поиска при попытке получить данные из API в виде списка в Flutter

#json #flutter

#json #flutter

Вопрос:

 import 'package:basicsforapi/studetDetailModel.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class newApp extends StatefulWidget {
  newApp({Key key}) : super(key: key);

  @override
  _newAppState createState() => _newAppState();
}

class _newAppState extends State<newApp> {
  List<Profile> myallData = [];
  Future<List<Profile>> makeRequest() async {
    var url =
        "http://ec2-232-25-216.ap-suth-1.copte.amoaws.com:124/userdetals?uer=user1";
    var response = await http
        .post(Uri.encodeFull(url), headers: {"Accept": "application/json"});

    // print(response.body);
    print(response.body);
    var jsonBody = json.decode(response.body);

    setState(() {
      myallData = jsonBody;
    });
  }

  @override
  void initState() {
    this.makeRequest();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("Hi"),
        ),
        body: Column(
          children: [Text("$myallData")],
        ));
  }
}
 

Данные Json :

 [{"ImageUrl":"https://i.pinimg.com/originals/ff/a0/9a/ffa09aec412db3f54deadf1b3781de2a.png","_id":"5fec7033d5b59b44f5146651","academicYear":2019,"cityId":1,"class":9,"coinBalance":2456,"curr":"CBSE","dob":"20160102","email":"EDTECH001@GMAIL.COM","expPoints":10000,"firstName":"SHAKIBA NAAZ","instituteId":5,"lastName":"EDTECH","mobile":"9999900000","password":"pass1","relatedId":{"id1":"49999"},"studentId":1,"userName":"user1"}]

 

как обработать список и поместить все эти данные отдельно в текстовые поля.
даже я видел, создавая модель, даже если она не получена, я получаю эту ошибку

ОШИБКА: необработанное исключение: тип ‘List’ не является подтипом типа ‘List’.

помогите мне

Ответ №1:

То, что вы получаете от ответа api, не является списком объекта профиля. таким образом, вы можете преобразовать свой список объектов json в объект профиля, а затем подписать или сохранить как динамический список.

Попробуйте это.

Измените это

 List<Profile> myallData = [];
 

К этому

 List myallData = [];