首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Returns the last error occurred

Description

代码语言:javascript
复制
int json_last_error ( void )

Returns the last error (if any) occurred during the last JSON encoding/decoding.

Parameters

This function has no parameters.

Return Values

Returns an integer, the value can be one of the following constants:

Constant

Meaning

Availability

JSON_ERROR_NONE

No error has occurred

JSON_ERROR_DEPTH

The maximum stack depth has been exceeded

JSON_ERROR_STATE_MISMATCH

Invalid or malformed JSON

JSON_ERROR_CTRL_CHAR

Control character error, possibly incorrectly encoded

JSON_ERROR_SYNTAX

Syntax error

JSON_ERROR_UTF8

Malformed UTF-8 characters, possibly incorrectly encoded

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

A value of a type that cannot be encoded was given

PHP 5.5.0

JSON_ERROR_INVALID_PROPERTY_NAME

A property name that cannot be encoded was given

PHP 7.0.0

JSON_ERROR_UTF16

Malformed UTF-16 characters, possibly incorrectly encoded

PHP 7.0.0

Examples

Example #1 json_last_error() example

代码语言:javascript
复制
<?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;
}
?>

The above example will output:

代码语言:javascript
复制
Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {'Organization': 'PHP Documentation Team'} - Syntax error, malformed JSON

Example #2 json_last_error() with json_encode()

代码语言:javascript
复制
<?php
// An invalid UTF8 sequence
$text = "\xB1\x31";

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

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

The above example will output:

代码语言:javascript
复制
string(4) "null"
bool(true)

See Also

  • json_last_error_msg() - Returns the error string of the last json_encode() or json_decode() call
  • json_decode() - Decodes a JSON string
  • json_encode() - Returns the JSON representation of a value

← json_last_error_msg

代码语言:txt
复制
 © 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券