如何解决'[]'在 null 上调用的方法。在颤动中



在将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"] ?? " 

??操作员检查映射是否为空。如果映射为空,则我们创建一个空映射,并从该访问下一个密钥

只要使用这个你的错误就会被解决

相关内容

  • 没有找到相关文章

最新更新