json_last_error_msg() - PHP JSON Error Message


How to detect errors occurred in the json_decode() call?

✍: FYIcenter.com


You can use the following two functions to detect error and display error message occurred during the last call of json_decode() or json_encode().

  • json_last_error() - Returns the error code occurred in the last json_decode() or json_encode() call.
  • json_last_error_msg() - Returns the error message occurred in the last json_decode() or json_encode() call.

Here is a PHP example that shows you how to detect and display errors of a json_decode() call:

# json_decode_error.php
# Copyright (c) FYIcenter.com 

   $json = '{"site":"dev.fyicenter.com","topics":{"PHP":"Y","JSON":"Y"]}';
   print("\nInput: ".$json."\n");

# Decoded into an array
   $array = json_decode($json,true);

   if (json_last_error() == JSON_ERROR_NONE) {
      print("\nOutput Array:\n");
      print("   Type: ".gettype($array)."\n");
      print("   Size: ".count($array)."\n");
      print("   ['site']: ".$array["site"]."\n");
      print("   ['topics']['JSON']: ".$array["topics"]["JSON"]."\n");

      print("\nOutput Array Dump:\n");

   } else {
      print("\njson_decode() error: ".json_last_error_msg()."\n");

If you run the above PHP code through the PHP engine, you get the following output:

>\fyicenter\php\php.exe json_decode_error.php

Input: {"site":"dev.fyicenter.com","topics":{"PHP":"Y","JSON":"Y"]}

json_decode() error: State mismatch (invalid or malformed JSON)

Unfortunately, the error message is not detailed enough to tell us where the error occurred in the JSON text string.


Using JSON in PHP

⇒⇒JSON Tutorials

2018-03-04, 292👍, 0💬