【问题标题】:'String' is not a subtype of type 'int' of 'index'“String”不是“index”的“int”类型的子类型
【发布时间】:2020-09-30 09:55:23
【问题描述】:

我试图将列表存储到本地数据库。示例

[{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);

值被打印出来,但如果列表为空,则会抛出错误。

【问题讨论】:

    标签: flutter dart


    【解决方案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();
    

    这应该可行。

    【讨论】:

    • 错字。请再次检查。
    • 只为 if list isEmpty 添加条件验证?假设列表为空,您希望分配什么默认值?
    猜你喜欢
    • 2019-04-24
    • 2021-03-29
    • 1970-01-01
    • 2021-09-08
    • 2020-04-22
    • 2021-08-10
    • 2020-10-02
    • 1970-01-01
    • 2022-09-27
    相关资源
    最近更新 更多