我试图将列表存储到本地数据库。例子
[{id: 29, inspection_id: 25}] // output for time:i['inspection']['time']
我使用此代码
var value = json.decode(response.body);
for (var i in value['requests']) {
await _dao.insert(ABC(time:i['inspection']['time']));
}
如果i['inspection']['time]
不为空,则可以正常工作,但是如果为[]
为空,则输入'String' is not a subtype of type 'int' of 'index'
如何检查它是否为空,它不会插入数据库中,所以我可以摆脱此错误?
请帮助,我在哭。
修改
var a = i['current_inspection']['time'].toString();
print("a "+a);
将打印该值,但是如果列表为空,则会抛出错误。
答案 0 :(得分:1)
您的问题可能是因为您缺少字符串的结尾引号,这可以解释错误消息,请尝试:
var value = json.decode(response.body);
for (var i in value['requests']) {
await _dao.insert(ABC(time:i['inspection']['time']));
}
另一方面,要检查dart中的列表是否为空,只需使用List.isEmpty。
使用三元运算符,检查列表是否为空,如下所示:
var a = i['current_inspection']['time'].isEmpty? #default value: i['current_inspection']['time'].toString();
这应该有效。