json_decode PHP的问题

Fra*_*rez 5 php json

我从python接收一个json数组作为PHP中curl_exec的返回(第一个json PHP - > python,返回另一个json),并且由于语法错误导致解码失败.收到的json是有效的,但不知何故,如果我将这个json转换为字符串并打印出来,我会得到一个包含29个字符的字符串,但如果我打印strlen((字符串)$ my_json)则表示50.

这是代码:

$results = curl_exec($ch);
curl_close($ch);
var_dump(json_decode($results));
Run Code Online (Sandbox Code Playgroud)

并返回NULL.如果我做以下事情

echo (string)$results;
Run Code Online (Sandbox Code Playgroud)

它打印[[11,"stuffstuf","stuffs"]](29个字符),这是一个有效的json.但如果我这样做

echo strlen((string)$results);
Run Code Online (Sandbox Code Playgroud)

它打印50.

所以,我不知道发生了什么.任何想法将不胜感激=)

Sel*_*aek 17

可能是你周围有一些html标签,你在做简单的回声时看不到?

尝试:echo htmlentities((string)$results);查看更多内容,或查看页面的html源代码.

如果json_decode()失败,则表示该字符串不是标准JSON.

您还可以使用json_last_error_msg()来确定它返回NULL的原因.如果json_decode中有任何错误,那将返回错误消息.

  • 伙计,我爱你.htmlentities()告诉我返回的数据在字符串中间有"引号"作为引号.刚刚制作了html_entity_decode((字符串)$ results),一切都很棒.非常感谢你! (5认同)