json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_error锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷拇锟斤拷锟�

说锟斤拷

json_last_error ( void ) : int

锟斤拷锟斤拷校锟斤拷锟斤拷锟� JSON 锟斤拷锟斤拷锟斤拷锟绞憋拷锟斤拷锟斤拷锟侥达拷锟斤拷

锟斤拷锟斤拷

锟剿猴拷锟斤拷没锟叫诧拷锟斤拷锟斤拷

锟斤拷锟斤拷值

锟斤拷锟斤拷一锟斤拷锟斤拷锟酵o拷integer锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷锟斤拷锟斤拷碌某锟斤拷锟街伙拷锟�

JSON 锟斤拷锟斤拷锟斤拷
锟斤拷锟斤拷 锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷
JSON_ERROR_NONE 没锟叫达拷锟斤拷锟斤拷  
JSON_ERROR_DEPTH 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷栈锟斤拷锟�  
JSON_ERROR_STATE_MISMATCH 锟斤拷效锟斤拷锟届常锟斤拷 JSON  
JSON_ERROR_CTRL_CHAR 锟斤拷锟斤拷锟街凤拷锟斤拷锟襟,匡拷锟斤拷锟角憋拷锟诫不锟斤拷  
JSON_ERROR_SYNTAX 锟斤法锟斤拷锟斤拷  
JSON_ERROR_UTF8 锟届常锟斤拷 UTF-8 锟街凤拷锟斤拷也锟斤拷锟斤拷锟斤拷为锟斤拷锟斤拷确锟侥憋拷锟诫。 PHP 5.3.3
JSON_ERROR_RECURSION One or more recursive references in the value to be encoded PHP 5.5.0
JSON_ERROR_INF_OR_NAN One or more NAN or INF values in the value to be encoded PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE 指锟斤拷锟斤拷锟斤拷锟酵o拷值锟睫凤拷锟斤拷锟诫。 PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME 指锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟睫凤拷锟斤拷锟诫。 PHP 7.0.0
JSON_ERROR_UTF16 锟斤拷锟轿碉拷 UTF-16 锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷为锟街凤拷锟斤拷锟诫不锟斤拷确锟斤拷 PHP 7.0.0

锟斤拷锟斤拷

Example #1 json_last_error() 锟斤拷锟斤拷

<?php
// 一锟斤拷锟斤拷效锟斤拷 json 锟街凤拷锟斤拷
$json[] = '{"Organization": "PHP Documentation Team"}';

// 一锟斤拷锟斤拷效锟斤拷 json 锟街凤拷锟斤拷锟结导锟斤拷一锟斤拷锟斤法锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞癸拷锟� ' 锟斤拷锟斤拷锟斤拷 " 锟斤拷为锟斤拷锟斤拷
$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;
}
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON

Example #2 json_encode() 锟斤拷 json_last_error()

<?php
// 锟斤拷效锟斤拷 UTF8 锟斤拷锟斤拷
$text "\xB1\x31";

$json  json_encode($text);
$error json_last_error();

var_dump($json$error === JSON_ERROR_UTF8);
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

string(4) "null"
bool(true)

锟轿硷拷

  • json_last_error_msg() - Returns the error string of the last json_encode() or json_decode() call
  • json_decode() - 锟斤拷 JSON 锟斤拷式锟斤拷锟街凤拷锟斤拷锟斤拷锟叫斤拷锟斤拷
  • json_encode() - 锟皆憋拷锟斤拷锟斤拷锟斤拷 JSON 锟斤拷锟斤拷