• PHP Video Tutorials

PHP - json_last_error() Function



The json_last_error() function can return the last error occurred.

Syntax

int json_last_error( void )

The json_last_error() function can return the last error (if any) occurred during the last JSON encoding/decoding.

The json_last_error() function can return an integer, and the value can be one of the following constants:

  • 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
  • JSON_ERROR_RECURSION − One or more recursive references in the value to be encoded
  • JSON_ERROR_INF_OR_NAN − One or more NAN or INF values in the value to be encoded
  • JSON_ERROR_UNSUPPORTED_TYPE − A value of a type that cannot be encoded was given
  • JSON_ERROR_INVALID_PROPERTY_NAME − A property name that cannot be encoded was given
  • JSON_ERROR_UTF16 − Malformed UTF-16 characters, possibly incorrectly encoded

Example

<?php 
   // A valid json string
   $json[] = '{"First Name": "Adithya"}';
     
   // An invalid json string which causes an syntax 
   // error, in this case we used ' instead of " for quotation
   $json[] = "{First Name': 'Adithya'}";
   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_STATE_MISMATCH:
         echo " - Underflow or the modes mismatch";
         break;
         case JSON_ERROR_DEPTH:
         echo " - Maximum stack depth exceeded";
         break;
         case JSON_ERROR_CTRL_CHAR:
         echo " - Unexpected control character found";
         break;
         case JSON_ERROR_SYNTAX:
         echo " - Syntax error, malformed JSON";
         break;
         default:
         echo " - Unknown error";
         break;
     }   
     echo PHP_EOL;
   }
?>

Output

Decoding: {"First Name": "Adithya"} - No errors
Decoding: {First Name': 'Adithya'} - Syntax error, malformed JSON
php_function_reference.htm
Advertisements