我试图创建动态下拉,其值是从使用微服务的查找表之一填充,但我已经尝试了许多方式相同,到目前为止,我还没有成功地使其工作。
下面的代码用于调用webservice
Future<List<CountryDropDownList>> getCountriesDetails(String url) async{
HttpClient httpClient = new HttpClient();
HttpClientRequest request = await httpClient.getUrl(Uri.parse(url));
// request.headers.set('content-type', 'application/json');
print("request data "+request.toString());
HttpClientResponse microServicesResponse= await request.close();
String microServicesResponseString = await microServicesResponse.transform(utf8.decoder).join();
final parsed = await json.decode(microServicesResponseString).cast<Map<String, dynamic>>();
httpClient.close();
print("Data Recieved "+microServicesResponseString.toString());
return parsed
.map<CountryDropDownList>(
(json) => CountryDropDownList.fromJson(json))
.toList();
}
这是我的对象类型
class CountryDropDownList{
String countryName;
List<StateDropDownList> stateDropDownList;
CountryDropDownList({this.countryName, this.stateDropDownList});
factory CountryDropDownList.fromJson(Map<String, dynamic> json) {
return CountryDropDownList(
countryName: json['countryName'] as String,
stateDropDownList: json['states'] as List<StateDropDownList>,
);
}
}
仅用于显示目前运行的以下代码
class CenterFoundationSubmission extends StatefulWidget {
CenterFoundationSubmission({Key key}) : super(key: key);
@override
_CenterFoundationSubmissionState createState() => new _CenterFoundationSubmissionState();
}
class _CenterFoundationSubmissionState extends State<CenterFoundationSubmission> {
NetworkUtil _netUtil = new NetworkUtil();
var url = "SomeUrl";
@override
void initState() {
super.initState();
setState(() {
});
}
@override
Widget build(BuildContext context) {
var futureBuilder = new FutureBuilder(
future: _getData(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
return new Text('loading...');
default:
if (snapshot.hasError)
return new Text('Exception here is : ${snapshot.error}');
else
return createView(context, snapshot);
}
},
);
return new Scaffold(
appBar: new AppBar(
title: new Text("Center Foundation"),
),
body: futureBuilder,
);
}
Future<List<CountryDropDownList>> _getData() async {
List<CountryDropDownList> values = new List<CountryDropDownList>();
values.addAll(_netUtil.getCountriesDetails(url) as List<CountryDropDownList>);
/*Error Added here , i am getting error while casting list to my object type*/
await new Future.delayed(new Duration(seconds: 10));
return values;
}
Widget createView(BuildContext context, AsyncSnapshot snapshot) {
List<CountryDropDownList> values = snapshot.data;
return new ListView.builder(
itemCount: values.length,
itemBuilder: (BuildContext context, int index) {
return new Column(
children: <Widget>[
new ListTile(
title: new Text(values[index].countryName),
subtitle: new Text(values[index].stateDropDownList[index].statesName),
trailing: new Text(values[index].stateDropDownList[index].districtDropDownList[index].districtsName),
),
new Divider(height: 2.0,),
],
);
},
);
}
}
我做了什么我尝试调用webservice在多种方式调用它,尝试铸造服务响应直接使用JSON字符串响应和可能的事情我尝试过。
你能在这里帮忙吗?我们将不胜感激。
你能试试列表吗。from()构造函数?以下是相同的链接:
https://api.dart.dev/stable/2.8.4/dart-core/List/List.from.html
stateDropDownList: List<StateDropDownList>.from(json['states']);
我在尝试使用JSON_serializable序列化从internet获取的复杂JSON并使用FutureProvider将它们连接在一起时遇到了这个问题。这是json文件, 这是包含序列化类的代码, 获取json文件并将其转换为dart的未来提供者, 这是基因编码, 这是转换后的json文件显示的代码 当我试着运行这个项目时,我遇到了这个错误 i/flutter(23347): type'Lis
我正在对地图执行firestore查询 没有人工作过,任何帮助都是感激的 谢谢你抽出时间
我是颤振初学者。我得到这样的JSON响应时出错。 我一直在论坛上寻找这个问题,我发现是这样的。 但我不懂如何编写函数。这是我的密码。 还有像这样的错误。 我很抱歉问了同样的问题,因为我不明白
我有点被某些情况困住了。 1)
我试图从API获取数据。我得到了错误类型列表不是地图的子类型。我是新来的,不明白我在哪里犯了错误。 这是我的回帖功能: 在我的主屏幕中,我使用了一个,如下所示: 如何解决此错误?提前谢谢。
我从github获取了代码,但仍然不起作用 生成FutureBuilder时引发了以下类型错误(脏,状态:_FutureBuilderState#a936c):类型“List”不是类型“Map”的子类型 在此列出声明 这是地图