颤振:如何从 json 中获取数据?
Posted
技术标签:
【中文标题】颤振:如何从 json 中获取数据?【英文标题】:flutter :how can I fetch data from json? 【发布时间】:2019-04-20 20:59:01 【问题描述】:我尝试通过以下代码从 json 中获取数据,但在此过程中出现错误(“List”类型不是“Map”类型的子类型)。请在这方面帮助我
json结构如下
[id: 1, fname: Semester Fees, sname: 1st Semester, fee_amount: 4000, status: 0, id: 2, fname: Admission Fees, sname: 2nd Semester, fee_amount: 4000, status: 0]
String url = 'http://192.168.42.124/my_payment/getcoursefee.php';
List data;
Future<String> makeRequest() async
var response = await http
.post(Uri.encodeFull(url), headers: "Accept": "application/json",
body:
"student_id": "261",
);
setState(()
var extractdata = json.decode(response.body);
Student student =new Student.fromJson(extractdata);
print(student.studentId);
print(extractdata);
);
@override
void initState()
this.makeRequest();
我的学生班级在下面
class Student
String studentId;
Student(
this.studentId,
);
factory Student.fromJson(Map<String, dynamic> parsedJson)
return Student(
studentId: parsedJson['id'],
);
【问题讨论】:
您示例中的 JSON 是 List,而不是 Map。那么,您有什么不清楚的地方? 如何获取列表值 问题是您正在获取 JSON 列表,并且您正在尝试将其传递给预期为 Map 的构造函数。而且你正在传递多个实体。您必须将列表拆分为循环并从内部的这些实体创建多个对象。查看@AndreyTurkovsky 解决方案,这就是您想要的! 【参考方案1】:List<Map<String, dynamic>> extractdata = json.decode(response.body);
for (map in extractdata)
Student student = new Student.fromJson(map);
print(student.studentId);
print(map);
像这样的东西
【讨论】:
以上是关于颤振:如何从 json 中获取数据?的主要内容,如果未能解决你的问题,请参考以下文章