报错:
Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>'
报错代码:
// value反编码后为List<dynamic>
List<Map<String, dynamic>> list = json.jsonDecode(value as String);
报错原因:
无法直接用子类型去声明父类变量,或者无法直接用子集类型去声明父集类型;代码中 value 反编码后为的变量 list 的类型为 List<dynamic> ,而 Map<String, dynamic> 是 dynamic 的一种情况,即 dynamic 包含 Map<String, dynamic> 。
解决方法:
// value反编码后为List<dynamic>
List<Map<String, dynamic>> list = json.jsonDecode(value as String).cast<Map<String, dynamic>>();
cast为List类中的方法,它可以传入一个泛型,是该泛型的类型正常返回,不是的会抛出异常。
网友评论