在将JSON数据使用到文本wigdet中后,我收到了这个错误。我的json本地存储在中
assets/json/data.json
我正在使用Listview.builder 构建Listview
我的代码
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Color(0xff655ee6),
appBar: AppBar(
backgroundColor: Color(0xff655ee6),
title: Text("Apply Online"),
),
body: SingleChildScrollView(
child: SizedBox(
height: MediaQuery.of(context).size.height,
child: FutureBuilder(
future: DefaultAssetBundle.of(context).loadString("assets/json/example.json"),
builder: (context,snapshot){
var mydata = json.decode(snapshot.data.toString());
if(mydata == null){
return Center(
child: CircularProgressIndicator(
),
);
}
else {return ListView.builder(
itemCount: 30,
itemBuilder: (context, index){
return Card(
child: ListTile(
title: Text(mydata["saarthiService"]['applyOnline']["0"]),
leading: Icon(Icons.import_contacts),
),
);
},
);}
},
),
),
),
);
}
}
请帮帮我,我是新来的感谢
当您尝试使用键从映射或使用索引从列表访问任何值,但您的映射/列表是null
时,就会发生此错误
在您的情况下,这一行:
mydata["saarthiService"]['applyOnline']["0"]
很可能是导致错误的原因。确保:
mydata
不为空mydata["saarthiService"]
不为空mydata["saarthiService"]['applyOnline']
不为空
我会建议您通过打印到控制台来检查数据,并验证它是否为空。
错误来自该行
mydata["saarthiService"]['applyOnline']["0"]
嵌套映射中的一些映射为空
若要删除错误,只需使用null运算符并为其提供空映射即可。
((mydata["saarthiService"]?? {})['applyOnline'] ?? {})["0"] ?? "
??操作员检查映射是否为空。如果映射为空,则我们创建一个空映射,并从该访问下一个密钥
只要使用这个你的错误就会被解决