是的,好的人,
[已编辑:
在dartpad中运行
private static Map<String, Verbosity> stringMap = Arrays.stream(values())
.collect(Collectors.toMap(Enum::toString, Function.identity()));
返回
import 'dart:convert';
void main() {
const String _json = '{"myListInt": [1]}';
final Map<String, dynamic> _map = jsonDecode(_json);
final List<int> _list = _map['myListInt'] as List<int>;
_list.forEach((i) {
String _s = i.toString();
print(_s);
});
}
以防我使用
Uncaught exception:
CastError: Instance of 'JSArray': type 'JSArray' is not a subtype of type
'List<int>'
或
final List<int> _list = List<int>.from(_map['myListInt'] as List<int>);
返回
List<int>.generate(_map['myListInt'].length, (i)=>_map['myListInt'][i] as int);
] 我在做什么错了?
提前谢谢
弗朗切斯科
答案 0 :(得分:1)
代替此行
myListInt: List<int>.from(_map['myListInt'] as List<int>),
您可以使用
myListInt: List<int>.generate(_map['myListInt'].length, (i)=>_map['myListInt'][i] as int
基本上不必强制转换整个列表,而必须逐个强制转换每个元素。
答案 1 :(得分:0)
好的,使用“作为迭代” 我希望有人会发现它有用
import 'dart:convert';
void main() {
const String _json = '{"myListInt": [1]}';
final Map<String, dynamic> _map = jsonDecode(_json);
final List<int> _list= List<int>.from(_map['myListInt'] as Iterable);
_list.forEach((i) {
String _s = i.toString();
print(_s);
});
}