php返回的是json数据,其中的数字都是带引号的,用JSON.parse()转换,axios就走catch了,怎么解决
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
本来就是对象就不用再解析了,
可以用的时候转换为数字了。
axios没咋用过, 不过如果后端返回的就是json, 那么你请求的时候可以配置返回的格式为json,就不用去处理了.
如果没法配置要通过JSON.parse解析的话就用单引号引起来
JSON.parse('{{ json_encode($phpArray) }}')
, 只是这样数组里面内容复杂了还是容易出问题.JSON.parse()解析对象是出错的。
返回的结果本该是数字都是字符串。这个可以php(后端)来做。相对简单。
不是数字带引号, 是因为这个数字本来就是一个字符串, 从PHP端传来的就是字符串.
如果需要是数据, 让PHP转或者你使用的时候转.
axios回来的时候已经是JS对象了,可以直接使用。不要再用parse方法
axios自动帮你用了JSON.parse 你不用手动调用这个方法了
可以看一下那边传过来的json中数字是否是带引号的
已经可以解析,说明数据没问题,只是数据类型的问题。
可以在用的时候再处理,不过最好让PHP那边把数据处理好。
虽然没用过axios,但是个人感觉在响应请求的时候,它应该根据响应头的response-type自动转换json字符串为js对象了,所以再转换肯定是有问题的,看你打印的数据已经是对象了
另外数字带引号的问题,你php如果用select获取出来的时候(不确定你ORM是怎么实现的,有的会根据字段类型,自动转换数据),大部分都是直接返回的字符串,如果你需要整数或浮点数,可以使用intval或floatval。