【发布时间】:2021-10-20 10:17:30
【问题描述】:
我无法转换我获取的数据,
但没有显示错误,我添加了一条打印语句来查找错误发生的位置
Future<void> fetchAndSetProduct() async {
final url =
Uri.https('shopda-83b00-default-rtdb.firebaseio.com', '/products');
try {
print("karan oneonofne ");
final response = await http.get(url);
final extractData = json.decode(response.body) as Map<String, dynamic>;
final List<Product> loadedProduct = [];
extractData.forEach((prodId, prodData) {
loadedProduct.add(Product(
id: prodId,
title: prodData['title'],
description: prodData['description'],
price: prodData['price'],
isFavourite: prodData['isFavourite'],
imageUrl: prodData['imageUrl']));
});
print(loadedProduct[1]);
_items = loadedProduct;
notifyListeners();
} catch (error) {
throw (error);
} finally {
print('object');
}
}
仍然无法获取数据。我想我无法将 HTML 更改为 Jason
【问题讨论】:
-
您的 API 出现问题。它返回 html
-
当你得到其他东西时,你期望某种对象。
-
您的 API 调用可能格式错误,因此您没有收到 JSON 响应,而是收到了 HTML 错误页面。我建议不要使用
Uri.https,而是将Uri.parse与您在浏览器中测试过的网址一起使用。 -
它不起作用。你能帮我重写代码吗?它给出了 HTML 而不是 Json