Can';t在php中解码JSON文件
我尝试将PHP中的JSON解码为数组。 这是我的密码Can';t在php中解码JSON文件,php,arrays,json,Php,Arrays,Json,我尝试将PHP中的JSON解码为数组。 这是我的密码 <?php $url="file/game.json"; $result_file=file_get_contents($url); if(!$result_file){ echo 'result_file......Failed'; } $php_result=json_decode($result_file,true); print_r($php_result); if($php_result){ echo 'o
<?php
$url="file/game.json";
$result_file=file_get_contents($url);
if(!$result_file){ echo 'result_file......Failed'; }
$php_result=json_decode($result_file,true);
print_r($php_result);
if($php_result){
echo 'ok';
}
else{
echo 'error';
}
?>
这是我的json文件
[
{
"name": "ABCD",
"price": "24.36",
"platform": "<span class=\"platform battle-net\"></span>",
"region": "GLOBAL"
},
{
"name": "ABCD",
"price": "27.60",
"platform": "<span class=\"platform xbox-live\"></span>",
"region": "GLOBAL"
}
]
[
{
“名称”:“ABCD”,
“价格”:“24.36”,
“平台”:“,
“区域”:“全球”
},
{
“名称”:“ABCD”,
“价格”:“27.60”,
“平台”:“,
“区域”:“全球”
}
]
我的结果是“错误”。我不知道如何解决这个问题
我该怎么办。函数将整个文件返回到字符串中,或者在失败时返回FALSE
。所以我假设,这里没有得到文件字符串。所以试着这样做
<?php
try {
$url="file/game.json";
$result_file = file_get_contents('file/game.json');
if ($result_file === false) {
// Handle the error
echo "ERROR";
}else{
$php_result=json_decode($result_file,true);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - OK';
print_r($php_result);
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
}
} catch (Exception $e) {
// Handle exception
#echo $e->getMessage();
#echo $e->code();
}
?>
您的脚本正常,只需确保$url=“file/game.json”;找到文件了吗?你的代码对我也有用。很可能,您没有将数据放入$result\u文件中代码>?此代码如何处理$result\u file
为false
?如果result\u file为false,那么Json也将为false噢,这是我的错,编辑了您的新编辑,您打开了一个新错误。如果文件内容有效,但Json格式不正确,则Json解码将为false,但您的代码将显示“ok”,如果“$php\u result”为空,您可以添加Json\u last\u error\u msg
,或者检查Json\u last\u error