当我获取一个api时,控制台显示如下错误
E / flutter(10838):[错误:flutter / lib / ui / ui_dart_state.cc(157)]未处理的异常:FormatException:意外的字符(字符1)
E / flutter(10838):“响应”的实例
E / flutter(10838):^
E / flutter(10838):
这就是我获取api的方式
Future _fetchPost() async {
http.Response response = await http.get(url);
if (response.statusCode == 200) {
print(response.statusCode);
print(json.decode(response.body));
} else {
print(response.statusCode);
}
setState(() {
String jsonsDataString = response.toString();
_data = jsonDecode(jsonsDataString);
print(_data.toString());
});
return "Success";
}
状态代码返回200和一些api
I / flutter(10838):200
I / flutter(10838):[{restaurant_id:1010000001,restaurant_name: 咖啡厅,restaurant_image: http://.unicomerp./1010000001.jpg, table_id:1,table_name:利雅得-e 01,branch_name:I ah,nurl: http://snapittaitt.net/api/menu/10/?org=000001&branch_id=100it=10&offset=20&lang=en, table_menu_list:[{menu_category:沙拉和汤,menu_category_id: 11,menu_category_image: http://res.net/iRet/Item/ItemGroup_11.jpg, nexturl: http://snapittappt.net/api/menu/20/?org=1010000001&branch_id=10000001&menuCat=it=10&offset=20&lang=en, category_dishes:[{dish_id:100001,菜名:菠菜沙拉, dish_price:7.95,dish_image: http://restaurants.umerp.net///1000000/Items/100000001.jpg, dish_currency:SAR,dish_calories:15.0,dish_description:新鲜 菠菜,蘑菇和硬鸡蛋配上温暖的培根 醋汁,dish_Availability:正确,dish_Type:2,nexturl: http://snapitt
E / flutter(10838):[错误:flutter / lib / ui / ui_dart_state.cc(157)] 未处理的异常:FormatException:意外的字符(在 字符1)
E / flutter(10838):“响应”的实例
E / flutter(10838):^
E / flutter(10838):
如何解决此问题以获取所有api?
任何建议都会有所帮助:)
答案 0 :(得分:0)
更改此:
String jsonsDataString = response.toString(); // Error: toString of Response is assigned to jsonDataString.
_data = jsonDecode(jsonsDataString);
print(_data.toString());
对此:
String jsonsDataString = response.body.toString(); // toString of Response's body is assigned to jsonDataString
_data = jsonDecode(jsonsDataString);
print(_data.toString());
我希望这会有所帮助,如有任何疑问,请发表评论。
答案 1 :(得分:0)
哦,我发现了这个案例。这样,我将使用像这样将输入转换为字符串响应:
String responseapi = response.body.toString().replaceAll("\n","");
_data = jsonDecode(responseapi);
print(_data);
非常感谢帮助我的朋友
答案 2 :(得分:0)
我也遇到了同样的问题,但原因不同。由于这是一个非常常见的问题,我认为在这里提及它会帮助其他寻求解决方案的人寻找相同的问题。
我传递了一个 Map
的 JSON,其中需要 String
。所以,我这样做了:
json.encode(variableWithMapData)
我的问题解决了。