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