Jump to: navigation, search

Php json last error

From w3cyberlearnings

Contents

PHP function json_last_error

This function returns last error for JSON encoding or decoding.

Syntax json_last_error

json_last_error();

JSON error codes

  • 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 encode (available: PHP 5.3.3)

Example 1

<?php

// A valid json string
$json[] = '{"w3cyberlearning": "Learn PHP and JSON"}';

// An invalid json string which will cause an syntax 
// error, in this case we used ' instead of " for quotation
$json[] = "{`w3cybrelearnings': 'Learning'}";


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

Output

Decoding: {"w3cyberlearning": "Learn PHP and JSON"} - No errors

Decoding: {`w3cybrelearnings': 'Learning'} - Syntax error, malformed JSON

Related Links


---json_encode--- json_decode--- json_last_error---

Navigation
Web
SQL
MISC
References