Introducing JSON

JSON, or JavaScript Object Notation, is an open format for transferring data.
It derives from the JavaScript language and is a popular alternative to XML because it’s lightweight and easily human-readable.
Here’s what it might look like:

{
    "name": "John",
    "surname": "Smith",
    "age": 42,
    "address": "Dent Street, Gallifrey",
    "postal code": "6900",
    "tags": ["time", "traveller"]
}

As you can see, JSON is based on a series of name-value pairs, and if you know JavaScript, you will no doubt see how similar the notation is.

Using JSON with AJAX

One common application for JSON on the internet is as a data format for AJAX (ironically, Asynchronous Javascript And Xml).
Suppose we already have a function AJAX that uses the XMLHttp object to make an AJAX request to the specified page sending any data and then calling a callback function, passing it the server’s response.
If the response text is encoded in JSON, we can simply make it into an object using the eval function:

AJAX({"url": 'example.php', "data": 'params=value', function(r) {
    var responseObj = eval(r.text);
}});

The eval function evaluates the string as code, and, because JSON is valid JavaScript syntax, will return an object with the data from the server.

Because it is so popular, many other programming languages have native functions to encode and decode JSON. PHP, for instance, has the json_encode and json_decode functions, which will return a string with the JSON equivalent of a passed object, and vice versa.

! Beware !
Be careful when applying the eval function to a string of unknown or untrusted origin. Hackers may try to inject malicious code into your page, and this is a massive security breach. I personally never use this function unless I wrote the script it’s originating from myself.

Useful links

The official JSON website: www.json.org
The eval function: developer.mozilla.org