我遇到了一个非常奇怪的问题。
我有一个JSON webservice。
当我用这个网站http://www.freeformatter.com/json-formatter.html#ad-output检查它时,一切都是正常的。
但是当我使用以下代码加载我的JSON时:
$data = file_get_contents('http://www.mywebservice');
if(!empty($data))
{
$obj = json_decode($data);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - JSON_ERROR_NONE';
break;
case JSON_ERROR_DEPTH:
echo ' - JSON_ERROR_DEPTH';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - JSON_ERROR_STATE_MISMATCH';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - JSON_ERROR_CTRL_CHAR';
break;
case JSON_ERROR_SYNTAX:
echo "\r\n\r\n - SYNTAX ERROR \r\n\r\n";
break;
case JSON_ERROR_UTF8:
echo ' - JSON_ERROR_UTF8';
break;
default:
echo ' - Unknown erro';
break;
}
我收到了错误提示:语法错误。
这并没有任何帮助,真是个噩梦。
我发现在使用PHP 5.5时,我可以使用这个函数:http://php.net/manual/en/function.json-last-error-msg.php
(但我还没有成功安装PHP 5.5,并且我不确定这个函数是否会给我更多的详细信息)