问题描述
我能够在flutter应用程序中获取json数据。
现在,我想将该数据与List
关联。
我应该怎么做?
List companydetails;
var jsonResponse = json.decode(response.body);
JSON数据
{"error":"false","content":[
{
"id":"22","name":"Johnny",},{"id":"23","name":"Maria",]
}
我需要从获取的数据中快速构建一个列表视图。
解决方法
您可以使用此模型:
class CompanyDetail {
String error;
List<Content> content;
CompanyDetail({this.error,this.content});
CompanyDetail.fromJson(Map<String,dynamic> json) {
error = json['error'];
if (json['content'] != null) {
content = new List<Content>();
json['content'].forEach((v) {
content.add(new Content.fromJson(v));
});
}
}
Map<String,dynamic> toJson() {
final Map<String,dynamic> data = new Map<String,dynamic>();
data['error'] = this.error;
if (this.content != null) {
data['content'] = this.content.map((v) => v.toJson()).toList();
}
return data;
}
}
class Content {
String id;
String name;
Content({this.id,this.name});
Content.fromJson(Map<String,dynamic> json) {
id = json['id'];
name = json['name'];
}
Map<String,dynamic>();
data['id'] = this.id;
data['name'] = this.name;
return data;
}
}
然后绑定Json数据:
var companyDetail = CompanyDetail.fromJson(json.decode(response.body));
现在在ListView小部件中使用“内容列表”:
companyDetail.content
示例(确保content
不为空):
....
ListView.builder
(
itemCount: companyDetail.content.length,itemBuilder: (BuildContext ctxt,int index) {
return new Text(companyDetail.content[index]);
}
),...