类型“String”不是类型“List?”的子类型< int>- flutter/dart

slwdgvem  于 2023-05-11  发布在  Flutter
关注(0)|答案(1)|浏览(203)

我收到以下错误类型“String”不是类型“List?”的子类型'将Map转换为BarModel对象时
尽管从响应中接收到int的列表,但仍抛出类型“String”不是类型“List”的子类型。将其分配给openDays时

List<int>? openDays;

BarModel.fromMap(Map<String, dynamic> json) {
    print(json['open_days']); // [1, 2, 3]
    barId = json['bar_id'];
    barName = json['bar_name'];
    barAddress = json['bar_address'];
    openDays = json['open_days']; // error type 'String' is not a subtype of type 'List<int>?'
  }
m1m5dgzv

m1m5dgzv1#

假设您输入的Map是JSON字符串的jsonDecode的实际结果,这意味着JSON实际上被格式化为

{
  "open_days" : "[1, 2, 3]"
  ...
}

而不是这个

{
  "open_days" : [1, 2, 3]
  ...
}

如果你希望它是一个实际的列表而不是一个字符串,这是正确的方法。
如果您无法控制JSON字符串,则可以在另一时间通过jsonDecode解决它,例如

openDays = jsonDecode(json['open_days']);

相关问题