flutter报错解决 Error: FormatException: SyntaxError: Unexpected token m in JSON at position 1

Error: FormatException: SyntaxError: Unexpected token m in JSON at position 1

首先说明一下后端正确的需要返回的json格式如下:

{
    "mydata":"[{
    "title": "如何使用Arthas进行JVM取证系统安全",
    "url": "sssssssssss",
    "time": "ssss",
    "score": "90",
  },
  {
    "title": "如何使用Arthas进行JVM取证系统安全",
    "url": "yyyyyyyyyyy",
    "time": "443333",
    "score": "90",
  }]"
}

这种错误就是json格式的错误,我在代码中对返回的响应数据如下处理:

Future<String> getHttp() async {
  try {
    Response response = await Dio().get(BASEURL);
    return response.data.toString();
  } catch (e) {
    print("我的dio错误--${e}");
  }
  return null;
}

response.data.toString(),这里toString操作使得后端返回的json数据变为了以下格式:

{mydata: [{
    "title": "如何使用Arthas进行JVM取证系统安全",
    "url": "sssssssssss",
    "time": "ssss",
    "score": "90",
  },
  {
    "title": "如何使用Arthas进行JVM取证系统安全",
    "url": "yyyyyyyyyyy",
    "time": "443333",
    "score": "90",
  }]}

可以看出跟正确的json相比,该json的mydata字段少了双引号,因此无法被识别。
正确的处理方法应该是:

Future<String> getHttp() async {
  try {
    Response<String> response = await Dio().get(BASEURL);
    return response.data;
  } catch (e) {
    print("我的dio错误--${e}");
  }
  return null;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值