Validate JSON String Using PHP

Nov 23, 2016

2 mins read

Published in

This article is about to validate JSON String using PHP. JSON is the popular data format to transfer data between client and server. There are many JSON validators are available online such as [JSON Validator][1] and [JSON Validator on CodeBeautify][2] to validate JSON.

As a programmer, I am curious to know how these tools are working. Here I am going to explain.

json_decode() is the function which is been introduce in PHP 5.3 to validate JSON String.

About json_decode

Here is the description is given in PHP specification.

mixed json_decode ( string [, bool = false [, int = 512 [, int = 0 ]]] )

This function takes a JSON encoded the string and converts it into a PHP variable.

Validate JSON String Using PHP

Here is the function which works as JSON Validator.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
//JSON Validator function
function json_validator($data=NULL) {

  if (!empty($data)) {

                @json_decode($data);

                return (json_last_error() === JSON_ERROR_NONE);

        }
        return false;
}

Let’s see how does this work.

if (!empty($data))

This condition will check the $data variable is not empty. If $data is empty, then it will return false.

@json_decode($data)

json_decode parses the data and return the PHP variable if the string is valid. If the string is not valid it will generate the error. Character “@” will suppress the error.

return (json_last_error() === JSON_ERROR_NONE);

This will check if $data is valid JSON string by comparing with JSON_ERROR_NONE. json_last_error() return the last error when json_decode() has called if there are any.

Here is the Example of Validating JSON data.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
//JSON Validator function
function json_validator($data=NULL) {

  if (!empty($data)) {

                @json_decode($data);
                return (json_last_error() === JSON_ERROR_NONE);
        }
        return false;
}

//valid JSON Data
/*
 {
  "actors": {
    "actor": [
      {
        "id": "1",
        "firstName": "Tom",
        "lastName": "Cruise"
      }
    ]
  }
}
 */

$sampleJSONData1 = '{"actors":{"actor":[{"id":"1","firstName":"Tom","lastName":"Cruise"}]}}' ;

//invalid JSON Data
/*
 {
    {
    "actor": [
      {
        "id": "1",
        "firstName": "Tom",
        "lastName": "Cruise"
      }
    ]
  }
}
 */
echo "Result for sampleJSONData1: ";
echo (json_validator($sampleJSONData1) ? "JSON is Valid" : "JSON is Not Valid");

echo "</br>";
echo "Result for sampleJSONData2: ";
echo (json_validator($sampleJSONData2) ? "JSON is Valid" : "JSON is Not Valid");

Related Articles:

Validate JSON String using JavaScript

Related Tools:

https://jsonformatter.org

https://codebeautify.org/jsonvalidator

Sharing is caring!