在Flutter中试图以列表的形式从API获取数据时发现错误


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"类型的子类型。

帮我解决

您从api响应中得到的不是概要文件对象的列表。因此,您可以将json对象列表转换为profile对象,然后进行asign或另存为动态列表。

试试这个。

更改此

List<Profile> myallData = [];

到此

List myallData = [];

最新更新