我是新手,所以老实说,我不知道为什么收到此错误。
List < BaseResponse > pEShippingDetail = [];
Future loadMessageList() async {
http.Response response = await http.get('http://www.efwebservice.com/Public/api/ShipmentItems/GetShippingDetails?token=XE9QZEA5ZLRJ64FLO4210&projectid=1010408');
//await Future.delayed(Duration(seconds: 3));
String content = response.body;
List collection = json.decode(content);
List < BaseResponse > _messages = collection.map((json) => BaseResponse.fromJson(json)).toList();
setState(() {
pEShippingDetail = _messages;
});
}
void initState() {
loadMessageList();
super.initState();
}
答案 0 :(得分:0)
该get请求返回的是JSON对象,而不是列表。 JSON对象被解码为Map<String, dynamic>
。因此,例外是因为您试图将Map<String, dynamic>
分配给List变量,但无法完成。
不过,看看上面的响应,也许您是要在响应中使用categories
属性,而不是整个响应?
仔细查看响应,并确定您实际上对数据的哪些部分感兴趣。
答案 1 :(得分:0)
您的json.decode(content);
产生了_InternalLinkedHashMap<String, dynamic>
,但是您尝试将其分配给类型为List
(默认类型)的dynamic
。
要解决此问题,请首先查看响应的数据格式是什么。然后使用所需的类型。您可以使用没有静态类型的final
,但这不是最好的选择。 Map<String, dynamic>
应该可以工作,但是如果不查看json响应就不能明确地说出它是正确的。