flutter - 未处理的异常:'String' 类型不是'index' 的'int' 类型的子类型问题 Dart 和颤动
问题描述
我有这个变量问题这是我的getdata
功能
Future <List <Deal>> getData() async{
String myUrl = "http://10.25.20.27:5000/api/all";
var response = await http.get(myUrl,
headers: {
'Accept':'application/json',
});
var jsonData = json.decode(response.body);
List<Deal> deals =[];
var u;
for( u in jsonData){
Deal deal = Deal(u["id"],u["name"],u["adress"],u["photo"],u["Description"],u["discount"]);
}
return deals;
}
我得到了这个错误
正在执行热重新加载...在 902 毫秒内重新加载了 594 个库中的 14 个。E/flutter(4211):[错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:“String”类型不是“index”E/flutter(4211)的“int”类型的子类型: #0 DatabaseHelper.getData (package:flutter_app/databasehelper.dart:116:25) E/flutter (4211): E/flutter (4211): #1 _HomeePageState.build。(package:flutter_app/homee_page.dart:100:80) E/flutter (4211): #2 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:654:14) E/flutter (4211): # 3 _InkResponseState.build。(package:flutter/src/material/ink_well.dart:729:32) E/flutter (4211): #4 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24) E/flutter ( 4211):#5 TapGestureRecognizer._checkUp(包:
解决方案
我认为您可以创建如下所示的“交易”类:-
class Deal {
String id;
String name;
String adress;
String photo;
String Description;
String discount;
Deal(
this.id,
this.name,
this.adress,
this.photo,
this.Description,
this.discount,
);
}
然后你可以使用如下循环: -
var u;
for (u in jsonData) {
Deal deal = Deal(
u["id"].toString(),
u["name"].toString(),
u["adress"].toString(),
u["photo"].toString(),
u["Description"].toString(),
u["discount"].toString());
}
推荐阅读
- node.js - TypeError:喜欢时无法读取未定义的属性“地图”
- python - 使用 BeautifulSoup 抓取数据时返回空 DataFrame
- spring - 为 ID“null”映射的 PasswordEncoder
- javascript - 从字符串数组中提取字母
- java - 如何使用 amadeus-java SDK 测试定价和预订航班?
- php - 在wordpress REST api单个请求中按类别分组,每个类别有5个帖子
- javascript - Rxjs CombineLatest 和 Object.assign 在@angular/material 源中的用法说明
- python - 从 json 格式的 csv 数据框单元格中查找特定值
- neo4j - 在 cypher / apoc 中执行具有多个条件的多个查询
- django - Django:在模型中定义方法