dart 扑动-未处理异常:格式异常:意外字符(在字符1处)|响应示例

bnlyeluc  于 2022-12-20  发布在  其他
关注(0)|答案(5)|浏览(176)

当我得到一个api时,控制台显示如下错误
E/扑动(10838):[错误:flutter/lib/ui/ui_dart_state. cc(157)]未处理的异常:格式异常:意外字符(在字符1处)
E/扑动(10838):"响应"的示例
E/扑动(10838):^
E/扑动(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/扑动(10838):200
I/扑动(10838):[{餐厅标识:1010000001,餐厅名称:咖啡馆、餐厅_image:http://.unicomerp./1010000001.jpg,表格ID:1,表名:Riyadh-e 01,分支机构名称:I Cah,努尔:http://snapittaitt.net/api/menu/10/?org=000001&branch_id=100it=10&offset=20&lang=en,表格菜单列表:[{菜单类别:沙拉和汤,menu_category_id:11、菜单_类别_图像:http://res.net/iRet/Item/ItemGroup_11.jpg,下一个:http://snapittappt.net/api/menu/20/?org=1010000001&branch_id=10000001&menuCat=it=10&offset=20&lang=en,类别_菜肴:[{菜肴ID:100001,菜肴名称:菠菜沙拉,菜肴_价格:7.95,碟形图像:http://restaurants.umerp.net///1000000/Items/100000001.jpg,菜肴_货币:SAR,菜肴_卡路里:15.0,培养皿描述:新鲜菠菜、蘑菇和鸡蛋配温培根醋汁,菜肴_供应:true,碟型:2、下图:http://snapitt
E/扑动(10838):[错误:flutter/lib/ui/ui_dart_state. cc(157)]未处理的异常:格式异常:意外字符(在字符1处)
E/扑动(10838):"响应"的示例
E/扑动(10838):^
E/扑动(10838):
我怎样才能解决这个问题,以实现获得所有的api?
任何建议都会很有帮助:)

anauzrmj

anauzrmj1#

更改此内容:

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());

我希望这能有所帮助,如有任何疑问请发表评论。

hpcdzsge

hpcdzsge2#

我也遇到过同样的问题,但原因不同。由于这是一个非常普遍的问题,我认为在这里提到它会帮助其他前来寻求解决方案的人寻找同样的问题。
我传递了一个JSON的Map,其中String是必需的。因此,我执行了以下操作:

json.encode(variableWithMapData)

我的问题就解决了。

b91juud3

b91juud33#

哦,我发现了这个案例.所以,我将使用转换输入到字符串响应如下:

String responseapi = response.body.toString().replaceAll("\n","");
_data = jsonDecode(responseapi);
print(_data);

非常感谢帮助我朋友

ahy6op9u

ahy6op9u4#

在我的情况下:
我使用了http而不是https,这导致了此错误。

dba5bblo

dba5bblo5#

我可能会迟到,但这是完美的答案。
此异常是因为键和值的格式不正确,或者您的数据可能有下标、上标或带/不带==〉''或带/不带==〉“"。
因此,你需要先对它进行jsonEncode,使其成为可解码的数据。您可能会遇到此异常。
例如
正在将哈希Map结果保存到字符串Map结果........
设置字符串(额外字符串,密钥计算器,jsonEncode(结果));
获取值字符串到哈希Map的对象

String result = SharedPrefs.getString(ExtraStrings.keyCalculator);
  calculationSaved = CalculationSaved.fromJson(jsonDecode(result));

CalculationSaved是一个模型类
未编码{Fick心输出量:0.345 L/min,心脏指数:1.760 l/min/m²}
编码为{“菲克心输出量”:“0.345 L/min”,“心脏指数”:“1.760 l/min/m²"}
json解码和类对象{心脏指数:1.760 l/min/m²,菲克心输出量:0.345升/分钟}
我希望你得到它...
快乐编码....

相关问题