flutter - 将 json 解析为模型失败
问题描述
我正在尝试向listview显示数据,但它没有显示任何内容。下面有json,我做错了什么,我厌倦了在api调用中打印数据但我可以打印数据但不能在listview中打印,我有很难理解我做错了什么或正确的事情。请帮助我
if (response.statusCode == 200) {
try {
if (status == true) {
var company_list = value['doc'];
for (int i = 0; i < company_list.length; i++) {
print(company_list);
var mobile_list = company_list["mobile"];
var email_list = company_list["email"];
company_model.add(CompanyModel.fromJson(company_list,mobile_list,email_list));
}
setState(() {
print("UI Updated");
});
} else {
final snackBar = SnackBar(content: Text(message));
_scaffoldKey.currentState.showSnackBar(snackBar);
}
} catch (e) {
e.toString();
}
} else {
final snackBar = SnackBar(content: Text(message));
_scaffoldKey.currentState.showSnackBar(snackBar);
}
json
{
"status":true,
"doc":{
"mobile":[
"9961256754",
"8974525672"
],
"email":[
],
"_id":"5f3a0dfe88b9d50453e92133",
"name":"MRC Labour",
"terms":{
"english":"We Shall not be liable for any disputes arising between the users and the
labourers",
"malayalam":"We Shall not be liable for any disputes arising between the users and the
labourers"
}
}
}
模型
class CompanyModel {
String id = "";
String mobile = "";
String email = "";
String name = "";
String english = "";
String malayalam = "";
CompanyModel({this.id, this.mobile, this.email, this.name, this.english,this.malayalam});
CompanyModel.fromJson(json,mobile_list,email_list)
: id = json['_id'].toString(),
mobile = mobile_list,
email = email_list,
name = json['name'].toString(),
english = json['terms']['english'].toString(),
malayalam = json['terms']['malayalam'].toString();
}
当调试器命中这一行时,它会中断而没有任何错误company_model.add(CompanyModel.fromJson(data,mobile_list,email_list));
这是列表视图代码
Container(
height: 80,
width: 100,
color: Colors.blueGrey[100],
padding: EdgeInsets.all(10),
child: ListView.separated(
separatorBuilder: (BuildContext context, int index) =>
const Divider(),
itemCount: company_model.length,
itemBuilder: (BuildContext context, int index) {
CompanyModel data = company_model[index];
print(data);
return Container(
height: 10,
color: Colors.green,
child: Text(data.name.toString(),style: TextStyle(color: Colors.black),),
);
},
),
),
解决方案
创建模型的最佳方法是在下面的链接中 https://app.quicktype.io/
只需将您的 json 作为左侧的输入,然后从左侧选择 dart 作为语言,您就可以开始了。
推荐阅读
- python - 使用 Asyncio 模块多次调用 url,没有获得性能优势
- .net-core - dotnet核心控制台启动时如何运行特定服务
- javascript - 如何使用 JavaScript 打开锚上下文菜单?
- python - 人口增长
- javascript - 无法在数据库中插入多条记录
- python - 测试复杂数据结构中元素的 Pythonic 方法
- php - 权限被拒绝 laravel 中没有现有目录
- qt - 仅使用 conanfile.txt 和 bintray 将 Qt 5.14.2 与 conan 包管理器添加为 repo
- html - 如何在 Shopify Debut 主题的主导航中激活“商店”链接?
- xml - 循环或数组映射,哪个更快?如何在 Google Script 中从嵌套循环更改为数组映射方法?