我从api使用字符串数组接收json。然后,将其设置为List类型的局部变量。
if (json['x'] is List) {
List<String> x = json['x'];
print(x);
}
当我运行应用程序时,Chrome向我显示警告:“忽略从JSArray到列表的转换失败”
我该怎么办?
最佳答案
JSON将所有数组编码为List<dynamic>
,因为这是规范。
如果要将某些内容强制转换为List<String>
,则不能像Dart 2那样仅依靠隐式强制转换。您必须使用实型:
List x = json['x'];
或使用
.cast
函数:var x = (json['x'] as List).cast<String>();
我意识到这比以前写的更多。如果您不喜欢这方面的样板,则可能需要查看JSON序列化软件包,例如
json_serializable
或built_value
。