我是json的新手,如果存在错误,我想显示json错误消息和错误代码。 我也在使用php。
到目前为止,我已经分配了两个变量:
$error_num = json_last_error();
$error_msg = json_last_error_msg();
但我很困惑我应该在if语句中添加什么。 我认为它应该是一些术语:如果存在错误...... 但我没有足够的经验来理解我是如何做到的。
if (/* ERROR condition is true */)
{
echo "Error: " . $error_num . " " . $error_msg;
}
else
{
// .. DISPLAYS TABLE ..
}
我很感激你能给我的任何帮助,因为我只是在学习。
答案 0 :(得分:0)
我认为你正在寻找这个
它返回上一个JSON期间发生的最后一个错误(如果有的话) 编码/解码。
<?php
// A valid json string
$json[] = '{"Organization": "PHP Documentation Team"}';
// An invalid json string which will cause an syntax
// error, in this case we used ' instead of " for quotation
$json[] = "{'Organization': 'PHP Documentation Team'}";
foreach ($json as $string) {
echo 'Decoding: ' . $string;
json_decode($string);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
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;
}
echo PHP_EOL;
}
?>
答案 1 :(得分:0)
要检查json_decode是否没有错误,请尝试:
if ($error_num !== JSON_ERROR_NONE)
{
echo "Error: " . $error_num . " " . $error_msg;
} else {
// .. DISPLAYS TABLE ..
}
JSON_ERROR_NONE
是一个PHP常量,表示没有发生错误