JSON错误检查if语句

时间:2016-10-12 14:07:11

标签: php json

我是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 ..
}

我很感激你能给我的任何帮助,因为我只是在学习。

2 个答案:

答案 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;
}
?>

参考链接http://php.net/manual/en/function.json-last-error.php

答案 1 :(得分:0)

要检查json_decode是否没有错误,请尝试:

 if ($error_num !== JSON_ERROR_NONE) 
 {
   echo "Error: " . $error_num . " " . $error_msg;

 } else { 
  // .. DISPLAYS TABLE ..
 }

JSON_ERROR_NONE是一个PHP常量,表示没有发生错误