【发布时间】:2022-09-22 21:53:32
【问题描述】:
我将我的 json 转换为类,并想使用 get.dio() 方法。我收到错误“未处理的异常:类型 \'String\' 不是 \'index\' 类型 \'int\' 的子类型。我该如何解决?
那是我的课。
class Word {
Word({
String? kelime,
String? anlami,
}) {
_kelime = kelime;
_anlami = anlami;
}
Word.fromJson(dynamic json) {
_kelime = json[\'kelime\'];
_anlami = json[\'anlami\'];
}
String? _kelime;
String? _anlami;
Word copyWith({
String? kelime,
String? anlami,
}) =>
Word(
kelime: kelime ?? _kelime,
anlami: anlami ?? _anlami,
);
String? get kelime => _kelime;
String? get anlami => _anlami;
Map<String, dynamic> toJson() {
final map = <String, dynamic>{};
map[\'kelime\'] = _kelime;
map[\'anlami\'] = _anlami;
return map;
} }
这些是我的获取代码。
Word wordData = Word();
@override
void initState() {
super.initState();
getWordData();
setState(() {});
});
}
getWordData() async {
var dio = Dio();
var responce = await dio.get(\"https://raw.githubusercontent.com/saturu/turkish_dictionary/main/4_letter.json\");
wordData = Word.fromJson(responce.data);
print(wordData);
}
-
错误显示在哪里?并分享您的小部件文件
-
不再是我的主页的小部件,它实际上是一个有状态的小部件, wordData = Word.fromJson(responce.data);犯了错误:(
-
是的。错误就在这里, wordData = Word.fromJson(responce.data);这是您从 api 获得的地图列表。
List<Word> wordData = [];wordData = (responce.data as List).map((val)=> Word.fromJson(val));//改变