为了账号安全,请及时绑定邮箱和手机立即绑定

php返回的是json数据,其中的数字都是带引号的,用JSON.parse()转换,axios就走catch了,怎么解决

php返回的是json数据,其中的数字都是带引号的,用JSON.parse()转换,axios就走catch了,怎么解决

PHP
哆啦的时光机 2019-03-05 20:18:25
查看完整描述

10 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

本来就是对象就不用再解析了,
可以用的时候转换为数字了。

查看完整回答
反对 回复 2019-03-18
?
噜噜哒

TA贡献1784条经验 获得超7个赞

axios没咋用过, 不过如果后端返回的就是json, 那么你请求的时候可以配置返回的格式为json,就不用去处理了.
如果没法配置要通过JSON.parse解析的话就用单引号引起来 JSON.parse('{{ json_encode($phpArray) }}'), 只是这样数组里面内容复杂了还是容易出问题.

查看完整回答
反对 回复 2019-03-18
?
弑天下

TA贡献1818条经验 获得超8个赞

JSON.parse({code: '0', data:'name', msg: '正常'})

JSON.parse()解析对象是出错的。
返回的结果本该是数字都是字符串。这个可以php(后端)来做。相对简单。

查看完整回答
反对 回复 2019-03-18
?
互换的青春

TA贡献1797条经验 获得超6个赞

不是数字带引号, 是因为这个数字本来就是一个字符串, 从PHP端传来的就是字符串.
如果需要是数据, 让PHP转或者你使用的时候转.

查看完整回答
反对 回复 2019-03-18
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

axios回来的时候已经是JS对象了,可以直接使用。不要再用parse方法

查看完整回答
反对 回复 2019-03-18
?
慕后森

TA贡献1802条经验 获得超5个赞

axios自动帮你用了JSON.parse 你不用手动调用这个方法了

查看完整回答
反对 回复 2019-03-18
?
九州编程

TA贡献1785条经验 获得超4个赞

可以看一下那边传过来的json中数字是否是带引号的

查看完整回答
反对 回复 2019-03-18
?
交互式爱情

TA贡献1712条经验 获得超3个赞

带引号说明是字符串而非数字了,最好还是去处理返回前的这些字段 解决根源才是正道啊

查看完整回答
反对 回复 2019-03-18
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

已经可以解析,说明数据没问题,只是数据类型的问题。
可以在用的时候再处理,不过最好让PHP那边把数据处理好。

查看完整回答
反对 回复 2019-03-18
?
潇湘沐

TA贡献1816条经验 获得超6个赞

虽然没用过axios,但是个人感觉在响应请求的时候,它应该根据响应头的response-type自动转换json字符串为js对象了,所以再转换肯定是有问题的,看你打印的数据已经是对象了

另外数字带引号的问题,你php如果用select获取出来的时候(不确定你ORM是怎么实现的,有的会根据字段类型,自动转换数据),大部分都是直接返回的字符串,如果你需要整数或浮点数,可以使用intval或floatval。

查看完整回答
反对 回复 2019-03-18
  • 10 回答
  • 0 关注
  • 749 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信