JSON不能解析问题,紧急,求助?
发布于 6 年前 作者 nalong 7845 次浏览 来自 问答

报错:

at api request success callback function

SyntaxError: Unexpected token  in JSON at position 0

php后台返回数据:

echo json_encode($response); //跟以往并没有任何区别

小程序请求并解析:

报错:

看到帖子有人回复说是bom头问题,

那么请问下,bom头问题怎么解决,是后台解决呢,还是小程序解决呢?

如果是后台解决,我尝试过以下两种方案:

1,

$result = trim($result, "\xEF\xBB\xBF");
print_r(json_decode($result, true));
exit;

2,

$result = [@iconv](/user/iconv)("UTF-8", "GBK//IGNORE", $result);
$result = [@iconv](/user/iconv)("GBK", "UTF-8//IGNORE", $result);
print_r(json_decode($result, true));

exit;

然而都没有生效,实在没办法,在此求助。。。


另外,附加一个问题:

同样是wx.request,同样是php后台返回的json_encode(),在小程序端拿到的response.data,有时候是个string,有时候是个object????

我敢打赌,代码绝笔是一样的用法。

这是断点调试看到的数据:

“{“openGId”:“tG4E0P0eBR4VolcGbP-v2lkpdgYB8”,“watermark”:{“timestamp”:1503802802,“appid”:“wx3b2ac4c74d0ea730”}}”

看着好像都是双引号,不知道有没有问题;如果有的话,怎么解决呢?

大神们看看有没有问题。

10 回复

官方提供的解密例子是有bom头的,这也是我经历过的,如果你用到了官方的解密例子,把每个用到的php文件处理一下bom头就行了。

感谢各位大神鼎力相助;

最后是尝试了 “『花嫁雾语微请柬』小程序 ”的方法,去掉bom头问题解决问题的,谢谢『花嫁雾语微请柬』小程序 。

这个有个很重要的点:除了给自己文件去掉bom头,还要给引用的文件去掉bom头,我是在这里被坑了好久。谢谢大家。

我都是用json_encode,都没报错,你处理了所有的文件bom头了吗?包括引用的文件也要处理,只要引用的文件其中一个有bom头都会出问题的。

帮你测试了一下,如果你传回来的数据,最外面是有双引号的话,就无法转成JSON。

如果是:{“openGId”:“tG4E0P0eBR4VolcGbP-v2lkpdgYB8”,“watermark”:{“timestamp”:1503802802,“appid”:“wx3b2ac4c74d0ea730”}} 就是成功的,所以你再看下你回传的数据内容

哈哈 这么尴尬 我以前玩PHP的时候 用json_encode 也会有问题。学习了学习了~~~

我也试过经常出现这样的问题,很多时候就是因为String的JSON格式不对,所以导致String无法解析成JSON

哥,你的问题解决了吗?我也遇到了这样的问题

谢谢你。可是这个双引号不是我控制的。

我php后台给一个对一个array数据,进行了json_encode(array),返回给我的数据。。。。

不知道哪里会有什么问题

不客气,共同进步,我也被坑过,哈哈。

“{“openGId”:“tG4E0P0eBR4VolcGbP-v2lkpdgYB8”,“watermark”:{“timestamp”:1503802802,“appid”:“wx3b2ac4c74d0ea730”}}”

这是返回的json数据,好像是没有问题的。

dom头的问题我也php处理过,好像没啥用。

回到顶部