JSON is a protocol designed to allow middleware to create objects using JavaScript's native format. Its most powerful attribute is that it is a lightweight protocol. When simply working with RSS aggregations or recipe lists, you don't need to use the full power of XML in JavaScript. There is no need to validate formats or ensure strict data keying.
PHP JSON extension encoding and decoding
There are two functions for PHP JSON extension: encode and decode. The first function will convert any type of data object into a set of serialized data for JavaScript to process. The second function will decode the serialized data and convert it to a basic PHP object or associative array. Let's take a look at json_decode().
Example of json_decode()
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>$</span><span class="attribute">jsonObject</span><span> = </span><span class="attribute-value">'{"21":{"url":"www.blah.com<br />/story1.html","title":"JSON is sweeping<br /> AJAX world","viewed":false},"22":{"url":<br />"www.blah.com/story2.html","title":"JSON <br />is great","viewed":false}}'</span><span>; </span></li><li class="alt"><span>$</span><span class="attribute">decodedObject</span><span> = </span><span class="attribute-value">json_decode</span><span>($jsonObject); </span></li><li><span>$</span><span class="attribute">decodedArray</span><span> = </span><span class="attribute-value">json_decode</span><span>($jsonObject, true); </span></li><li class="alt"><span>print_r($decodedObject); </span></li><li><span>echo "</span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span class="tag"><</span><span> </span><span class="tag-name">br</span><span class="tag">></span><span>"; </span></span></li> <li class="alt"><span>print_r($decodedArray); </span></li> <li> <span class="tag">?></span><span> </span> </li> <li class="alt"><span> </span></li> </ol>
As above, we have a PHP script that will get $jsonObject and decode it back to PHP native object. We decoded it twice. The first time, using unmodified usage, this will get an object of stdClass; the second time, using a Boolean argument to create an associative array.
The following is the output of decode:
<ol class="dp-xml"> <li class="alt"><span><span>stdClass Object ( [21] =</span><span class="tag">></span><span> <br>stdClass Object ( [url] =</span><span class="tag">></span><span> <br>www.blah.com/story1.html [title] =</span><span class="tag">></span><span> <br>JSON is sweeping AJAX world [viewed] =</span><span class="tag">><br></span><span> ) [22] =</span><span class="tag">></span><span> stdClass Object ( [url] =</span><span class="tag">><br></span><span> www.blah.com/story2.html [title] =</span><span class="tag">></span><span> <br>JSON is great [viewed] =</span><span class="tag">></span><span> ) ) Array ( [21] =</span><span class="tag">></span><span> <br>Array ( [url] =</span><span class="tag">></span><span> www.blah.com/story1.html <br>[title] =</span><span class="tag">></span><span> JSON is sweeping AJAX world<br> [viewed] =</span><span class="tag">></span><span> ) [22] =</span><span class="tag">></span><span> Array ( [url] =</span><span class="tag">><br></span><span> www.blah.com/story2.html [title] =</span><span class="tag">><br></span><span> JSON is great [viewed] =</span><span class="tag">></span><span> ) ) </span></span></li> <li><span> </span></li> </ol>
Let’s take a look at encode again:
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><</span><span> ?php </span></span></li><li><span>$</span><span class="attribute">results</span><span> = </span><span class="attribute-value">array</span><span>("21" =</span><span class="tag">></span><span> </span></span></li> <li class="alt"> <span>array("url" =</span><span class="tag">></span><span> </span> </li> <li> <span>"www.blah.com/story1.html", "title" =</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span>"JSON is sweeping AJAX world", "viewed" =</span><span class="tag">></span><span> </span> </li> <li> <span>FALSE), "22" =</span><span class="tag">></span><span> array("url"=</span><span class="tag">></span><span> </span> </li> <li class="alt"> <span>"www.blah.com/story2.html", "title" =</span><span class="tag">></span><span> </span> </li> <li> <span>"JSON is great", "viewed" =</span><span class="tag">></span><span> FALSE)); </span> </li> <li class="alt"> <span>$</span><span class="attribute">jsonObject</span><span> = </span><span class="attribute-value">json_encode</span><span>($results); </span> </li> <li><span>echo $jsonObject; </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> <li><span> </span></li> </ol>
No recursion is used. No tags added. Just pass it into the json_encode() function and it will come out the other end as a JSON serialized object.
Conclusion
JSON is a useful, lightweight protocol now available for PHP V5.2, which makes it easy to extract from PHP applications The process of extracting data and putting it into an Ajax application. Correspondingly, the PHP JSON extension is also lightweight and very useful, containing only two easy-to-use functions.
Using these functions we can convert and export object structures and also use json_encode() to make data from a PHP database connection available to Ajax applications. After processing the data in your Ajax application, you can return the data to the PHP script and use json_decode() to recreate the usable object data structure. Once the data is returned to PHP, we can store it in a database or use any other data processing method from the many options provided by PHP.