flutter - Flutter Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null
问题描述
所以我试图显示 1 个 API 响应,但是当我尝试我的方法时,它显示了这个错误
Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null.
我的 API 响应如下所示
"VR": "00",
"VALUE": {
"dt_name": "Caramel",
"dt_num": "20455",
"dt_pic": "---",
},
"STATS": "OK",
"LOAD": "0s"
}
这是我只得到名字的方法
Future<List<KonFirm>> _reqKonfirm() async {
var TP = await RTUPS(name);
var jsonData = json.decode(TP);
var jsonName = jsonData["VALUE"];
List<KonFirm> konfirm = [];
for (var u in jsonName) {
KonFirm konFirm = KonFirm(
u["dt_name"]);
konrirm.add(konFirm);
}
return konfirm;
}
这就是我所说的我得到的数据
FutureBuilder(
future: _reqKonfirm(),
builder: (BuildContext context,
AsyncSnapshot snapshot) {
nameController.text =
snapshot.data[index]
.dt_name;
});
解决方案
您的 jsonName 包含 Map 而不是列表,因此合乎逻辑的方法就是
KonFirm konFirm = KonFirm(
jsonName["dt_name"]);
konfirm.add(konFirm);
return konfirm;
没有更多循环,但如果您将方法的泛型更改为Future<KonFirm>会更好,因为您的 json 源仅包含一个数据
推荐阅读
- r - 如何从 casandara 和 S3 读取/写入 sparkR 和 sparklyr 数据帧?
- ansible - 无法将 ansible_user 与本地连接一起使用
- amazon-web-services - 从 CLI 上传 VPC 中的 Lambda 函数时遇到问题
- algorithm - 清理堆的时间复杂度是多少?
- laravel - 具有条件约束的查询范围
- c++ - 使用继承修复大型类
- c++ - C ++ 11访问类内存变量是否具有本地副本
- r - 如何在另一列中查找名称子集?
- python - 在模板中显示来自外键的值
- javascript - 在 Javascript 中获取当前地理位置