JSON stands for JavaScript Object Notation. It is a format for storing and exchanging data. It is based on a subset of the JavaScript Programming Language.
The file type for JSON files is “.json” and MIME type for JSON text is “application/json“.
Here are the characteristics of JSON:
- It is a lightweight data-interchange format.
- It is easy for humans to understand.
- It uses Javascript format but it is a text which makes it is completly language independent as text can be read and parsed by any programmng language.
JSON is based on two structures – Objects and Arrays.
Objects
- It is an unordered set of name/value pairs.
- An object begins with { (left brace) and ends with } (right brace).
- The name value pairs are written as:
- “name”:”value”
- name is written in double quotes.
- Name-value pairs separated by comma
Arrays
- It is an ordered collection of values.
- An array begins with [ (left bracket) and ends with ] (right bracket).
- Values separated by comma.
Values
JSON Values in the Objects and Arrays can be:
- string (in double quotes)
- Number
- Boolean (true or false)
- null
- object
- array
Parsing JSON
1. JSON.parse()
You can use the javascript function JSON.parse(text) to convert a JSON text into a javascript object.
<script type="text/javascript"> var obj = JSON.parse(text); </script>
2. eval()
For old browsers that do not support the JSON.parse() function, you can use the eval function to get the javascript object.
<script type="text/javascript"> var obj = eval ("(" + text + ")"); </script>
3. jQuery.parseJSON()
<script type="text/javascript"> var obj = jQuery.parseJSON(text); </script>
Now you can access the “obj” object data as you do for any javascript object as shown below:
<!DOCTYPE html> <html> <body> <h1>Parsing JSON String</h1> <script> var text = '{ "students": [' + '{ "name":"Greg" , "marks":{ "maths":80 , "science":90 } },' + '{ "name":"Yammi" , "marks":{ "maths":85 , "science":99 } },' + '{ "name":"Sam" , "marks":{ "maths":92 , "science":88 } }' + ']}'; var obj = JSON.parse(text); var msg = obj.students[1].name + " " + obj.students[1].marks.science; alert( msg ); </script> </body> </html>
Why should you prefer JSON over XML in AJAX applications?
- For working with XML you need a XML parser but JSON can be parsed by a standard Javascript fuction
- JSON is faster as compared to XML as it is shorter.
PHP sending JSON data in AJAX response
PHP “json_encode” function can be used to convert a PHP value to a JSON representation.
$fruits = array('Apple', 'Mango','Orange','Banana','Grapes'); echo json_encode($fruits);
Other JSON related functions in PHP are:
json_decode: It converts a JSON encoded string into a PHP variable.
json_last_error: It returns the last error (if any) occurred during the last JSON encoding/decoding.
Get JSON data with AJAX – prototype.js
new Ajax.Request('demo_ajax.php', { method:'get', requestHeaders: {Accept: 'application/json'}, onSuccess: function(transport){ var jsondata = transport.responseText.evalJSON(true); } });
Here jsondata holds the parsed JSON data.
Get JSON data with AJAX – jQuery
$.ajax({ type: 'GET', url: 'demo_ajax.php', contentType: "application/json", dataType: 'json', success: function(data) { $('#json-results').html(JSON.stringify(data)); console.log(json); }, error: function(e) { alert(e.message); } });
To make the above shorter, use $.getJSON()
$.getJSON("demo_ajax.php", function(result){ $.each(result, function(key, value){ $("div").append(key + " " + value); }); });
Leave a Comment