JSON एक आसान Text Based खुला मानक Data Interchange का Format है. यह पूरी तरह से Independent भाषा है और इसका अधिकांश भाग Modern Programming भाषाओं के साथ उपयोग किया जा सकता है.
JSON JavaScript Object Notation पर स्थिर है . JSON Objects Server और Client के बीच Data को Transfer करने के लिए उपयोग किया जाता है.
JSON XML पर कई फायदे हैं हालांकि XML एक ही Purpose के लिए कार्य करता है.
JSON Files को .json Extension से बचाया जाता है. JSON का Internet Media Type "application/json". है.
JSON Array, Object, String, Number और Values को Supports करता है.
आपको इस Example से ये मालूम होगा कि अपने Topic और Edition के आधार पर Books से संबंधित जानकारी Store करने के लिए JSON का उपयोग कैसे करते है.
{
"book": [
{
"id":"01",
"language": "Java",
"edition": "First",
"author": "James Gosling"
},
{
"id":"07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
उपरोक्त Example देखने के बाद आप नीचे एक और Example देख सकते है जिसको json.htm के रूप में Save किया गया है.
<html>
<head>
<title>JSON Example</title>
<script language = "javascript" >
var object1 = { "language" : "Java", "author" : "James Gosling" };
document.write("<h1>JSON with JavaScript example</h1>");
document.write("<br>");
document.write("<h3>Language = " + object1.language+"</h3>");
document.write("<h3>Author = " + object1.author+"</h3>");
var object2 = { "language" : "C++", "author" : "E-Balagurusamy" };
document.write("<br>");
document.write("<h3>Language = " + object2.language+"</h3>");
document.write("<h3>Author = " + object2.author+"</h3>");
document.write("<hr />");
document.write(object2.language + " programing language will be studied "
+ "from book written by " + object2.author);
document.write("<hr />");
</script>
</head>
<body>
</body>
</html>
XML का उपयोग व्यापक रूप से Data Interchange Pattern के रूप में भी किया जाता है. इसलिए हम उन दोनों के बीच Compare करने की कोशिश करेंगे.
हमारा Compare करने का Purpose यह नहीं है कि कौन निश्चित रूप से उस Line में नहीं है बल्कि हम यह समझने की कोशिश करेंगे कि कौन सा Specific Data Store करने के लिए उपयुक्त है.
XML JSON से अधिक Expressive है. XML कभी-कभी बार-बार Tag का उपयोग करने से भी Eclipse हो जाता है जबकि JSON इसके बहुत अधिक Concis है.
XML JSON के Compare में बहुत अधिक Complex है.
XML के लिए schema(metadata) को परिभाषित करने के लिए कई Characteristics हैं.
XML Programming भाषाओं के Mainly के साथ JSON के रूप में उपयोग किया जा सकता है. लेकिन जब आप XML के साथ काम कर रहे हैं तो आप वास्तव में उन दो Systems को Match करने की कोशिश कर रहे हैं, जो Data Structures से बहुत अलग है. हालांकि JSON के मामले में Arrays और Basic Data Structure का उपयोग करते हैं इसलिए Programs में उनके साथ काम करना आसान है.
XML में XML Data से Query करने के लिए Xquery Specified है. लेकिन JSON मानो JAQL, JSONiq आदि शामिल होते है लेकिन ये General रूप से उपयोग नहीं होते है.
XML में XSLT को Specification किया गया है जो किसी भी XML Document में एक Style को लागू करने के लिए उपयोग किया जा सकता है. हालांकि JSON में कुछ नहीं है.
{"employees":[
{"name":"Alia", "email":"alia050@gmail.com"},
{"name":"Kareena", "email":"kareenal12@gmail.com"},
{"name":"Salman", "email":"salman0202@gmail.com"}
]}
<employees>
<employee>
<name>Alia</name>
<email>alia050@gmail.com</email>
</employee>
<employee>
<name>Kareena</name>
<email>kareenal12@gmail.com</email>
</employee>
<employee>
<name>Salman</name>
<email>salman0202@gmail.com</email>
</employee>
</employees>
JSON बहुत से Data Types को Support करता है.
Number javaScript में एक Double Annotated Floating Point का एक प्रारूप है और यह Execution पर निर्भर करता है. इसमें Octal और Hexadecimal प्रारूप का उपयोग नहीं किया जाता है और इसमें Number में कोई NaN या Infinity का उपयोग नहीं किया जाता है.
var json-object-name = { string : number_value, .......}
इस Example में Number Digit को दिखाया गया है की Value को Quoted नहीं किया जाना चाहिए.
var obj = {marks: 87}
String में यहां Backslash से बचने वाले Zero या अधिक Double Quoted Unicode के Characters का अनुक्रम है. Character एक Only Character String है.
var json-object-name = { string : "string value", .......}
इस Example में String Datatype को दिखाया गया है.
var obj = {name: 'Sahid'}
Boolean में True और False को Includes किया गया है.
var json-object-name = { string : true/false, .......}
var obj = {name: 'Sahid', marks: 97, distinction: true}
JSON Array Values के Ordered सूची को प्रदर्शित करता है. JSON Array एक या एक से अधिक Values को Store कर सकता है. JSON Array में String, Number, Boolean और Object में Store कर सकता है.
[ value, .......]
{
"books": [
{ "language":"Java" , "edition":"first" },
{ "language":"C++" , "lastName":"fifth" },
{ "language":"C" , "lastName":"third" }
]
}
JSON Object में key/value कि जोड़ी रखते है. प्रत्येक key को JSON में एक String के रूप में दर्शाया जाता है और Value किसी भी प्रकार का हो सकती है. इसमें Keys और Values को Colon द्वारा अलग किया जाता है और हर key/value जोड़ी को Comma से अलग किया जाता है.
{ string : value, .......}
{
"id": "011A",
"language": "C",
"price": 400,
}
यह Null प्रकार का होता है.
null
var i = null;
if(i == 1){
document.write("<h1>value is 1</h1>");
} else{
document.write("<h1>value is null</h1>");
}
JSON Value में String, Number, Boolean, Array, Object, Null को Includes किया जाता है.
String | Number | Object | Array | TRUE | FALSE | NULL
var i = 1;
var j = "sahid";
var k = null;
JSON Object में key/value कि जोड़ी रखते है. प्रत्येक key को JSON में एक String के रूप में दर्शाया जाता है और Value किसी भी प्रकार का हो सकती है.
इसमें Keys और Values को Colon द्वारा अलग किया जाता है और हर key/value जोड़ी को Comma से अलग किया जाता है.
JSON Object में Keys String होने चाहिए और Values एक Valid JSON के रूप में Data Type (String, Number, Object, Array, Boolean or Null) होनी चाहिए.
आप नीचे JSON Object का उदाहरण देख सकते है.
{
"employee": {
"name": "Sahil",
"salary": 66000,
"married": true
}
}
JSON का उपयोग करते हुए Javascript में Array Object का Use आप नीचे दिए गए कोड के रूप में देख सकते है.
<!DOCTYPE html>
<html>
<head>
<title>Array object in javascript using JSON</title>
<script language = "javascript" >
document.writeln("<h2>JSON array object</h2>");
var books = { "Java" : [
{ "Name" : "Java Made Simple", "price" : 800 },
{ "Name" : "Guide to Java", "price" : 500 }],
"Scala" : [
{ "Name" : "Scala for the Impatient", "price" : 1100 },
{ "Name" : "Scala in Depth", "price" : 1400 }]
}
var i = 0
document.writeln("<table border = '1'><tr>");
for(i = 0;i<books.Java.length;i++){
document.writeln("<td>");
document.writeln("<table border = '1' height = 200 width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" +
books.Java[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width = 50>" +
books.Java[i].price +"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
for(i = 0;i<books.Scala.length;i++){
document.writeln("<td>");
document.writeln("<table border = '1' height = 200 width = 100 >");
document.writeln("<tr><td><b>Name</b></td><td width = 50>" +
books.Scala[i].Name+"</td></tr>");
document.writeln("<tr><td><b>Price</b></td><td width = 50>" +
books.Scala[i].price+"</td></tr>");
document.writeln("</table>");
document.writeln("</td>");
}
document.writeln("</tr></table>");
</script>
</head>
<body>
</body>
</html>
JSON Documents में Comments को Support नहीं करता है. यह Decision अपने Designer Douglas Crockford द्वारा लिया गया.
क्योंकि लोग उन्हें Instructions का पालन करने के लिए उपयोग कर रहे थे.
JavaScript Objects में JSON Strings के साथ Comments को Parse करते है.
लेकिन आप JSON Objects में Comment के लिए अतिरिक्त विशेषता जोड़ने जैसे कुछ Tricks का उपयोग कर सकते हैं.
{
"employee": {
"name": "Alia",
"salary": 64000,
"comments": "She is a nice girl"
}
}
JSON में Array लगभग javascript में Array के समान है होता है. JSON Array में सभी Values का प्रकार String, Number, Object, Array, Boolean और Null होना चाहिए. Javascript Array में Values के ऊपर भी सभी Plus किसी भी अन्य Valid JavaScript Expression को Functions, Dates, और Undefined को Include किया जा सकता है.
String values को Store करने के लिया आप JSON Arrays का Example आप नीचे देख सकते है.
["January", "February", "March", "April", "May", "June", "July"]
Storing Number को Store करने के लिया आप JSON Arrays का Example आप नीचे देख सकते है.
[12, 34, 56, 43, 95]
Storing Boolean को Store करने के लिया आप JSON Arrays का Example आप नीचे देख सकते है.
[true, true, false, false, true]
JSON Array में 4 Objects होते है जो आप नीचे Example में देख सकते है.
{"employees":[
{"name":"Rahul Khanna", "email":"rahulkhanna@gmail.com", "age":43},
{"name":"Shayan", "email":"Shayan13@gmail.com", "age":29},
{"name":"John", "email":"john@gmail.com", "age":34},
{"name":"Boby", "email":"boby132@gmail.com", "age":42}
]}
हम array में JSON Array को Store कर सकते हैं इसे Array या Multidimensional Array के रूप में जाना जाता है.
[
[ "a", "b", "c" "d"],
[ "m", "n", "o" "p"],
[ "w" "x", "y", "z" ]
]
JSON का एक आसान सा उपयोग Web Server से Data को Read करना और एक Web Page में Data को Display करना होता है.
यहाँ हम आपको ये बताएंगे की Client और एक PHP server के बीच JSON Data का आदान-प्रदान कैसे करता है.
PHP 5.2.0 के रूप में, JSON को Extension Bundled और Default के रूप से PHP में संकलित किया गया है.
JSON तीन PHP Function को Support करता है json_decode, json_encode और json_last_error.
json_decode() Function एक JSON String को समझता है. मान लीजिए कि आपने कुछ Data JSON रूप में प्राप्त किया है और आप इसे उस PHP Variable में बदलना चाहते है जो उपयोगकर्ता को उस Data को पेश करने के उद्देश्य से या आगे की Programinig के लिए इसका उपयोग कर सकते हैं.
mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
PHP json_encode () Function किसी भी PHP Value को JSON Value में Convert करता है. आप एक PHP Array से यह उस Array के एक JSON का Presentation बना सकता हो.
string json_encode ( $value [, $options = 0 ] )
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
Encoding या Decoding JSON पर काम करते समय यदि कोई Error होती है तो json_last_error () Function अंतिम Error देता है.
<?php
$Tur_json[] = "{'Website': 'tutorialsroot.com'}";
//since we have used "'" instead of double quote (""), This is a syntax error.
foreach ($w3r_json as $w3r_string) {
json_decode($w3r_string);
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - No errors';
break;
case JSON_ERROR_DEPTH:
echo ' - Maximum stack depth exceeded';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Underflow or the modes mismatch';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Unexpected control character found';
break;
case JSON_ERROR_SYNTAX:
echo ' - Syntax error, malformed JSON';
break;
case JSON_ERROR_UTF8:
echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
break;
default:
echo ' - Unknown error';
break;
}
echo PHP_EOL;
}
?>
JSON को बहुत आसानी से Javascript में Interpret किया जा सकता है.
JSON के रूप में प्राप्त Data के साथ एक HTML Table को बनाया जा सकते है.
<!DOCTYPE html>
<html>
<body>
<h2>HTML Table based on JSON data.</h2>
<p id="demo"></p>
<script>
var obj, dbParam, xmlhttp, myObj, x, txt = "";
obj = { "table":"customers", "limit":20 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myObj = JSON.parse(this.responseText);
txt += "<table border='1'>"
for (x in myObj) {
txt += "<tr><td>" + myObj[x].name + "</td></tr>";
}
txt += "</table>"
document.getElementById("demo").innerHTML = txt;
}
};
xmlhttp.open("POST", "json_demo_db_post.html", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);
</script>
</body>
</html>
AJAX कोड द्वारा JSON हम Data को प्राप्त कर सकते हैं . AJAX प्रतिक्रिया Asynchronous के लिए सुविधा प्रदान करता है और यह Page लोड नहीं करता है और यह Bandwidth को Save करता है.
AJAX Client Side पर परस्पर Web Development तकनीक के एक समूह के रूप में उपयोग किया जाता है, ताकि Asynchronous Web Applications को बना सके.
Client और Server के बीच AJAX अपडेट पास करने के लिए कई Developers JSON का उपयोग करते हैं . इसके आलावा Live Sports Scores को अपडेट करने वाली Websites को AJAX के एक उदाहरण के रूप में माना जाता है .
AJAX का उपयोग करके अपडेट किया गया कोई भी Data Web Server पर JSON के प्रारूप का उपयोग करके Store किया जा सकता है.
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8">
<title>AJAX JSON by Tutorialsroot</title>
<script type="application/javascript">
function load()
{
var url="http://date.jsontest.com/";//use any url that have json
data var request;
if(window.XMLHttpRequest){
request=new XMLHttpRequest();//for Chrome, mozilla etc
}
else if(window.ActiveXObject){
request=new ActiveXObject("Microsoft.XMLHTTP");//for IE only
}
request.onreadystatechange = function(){
if (request.readyState == 4 )
{
var jsonObj = JSON.parse(request.responseText);//JSON.parse()
returns JSON object
document.getElementById("date").innerHTML = jsonObj.date;
document.getElementById("time").innerHTML = jsonObj.time;
}
}
request.open("GET", url, true);
request.send();
}
</script>
</head>
<body>
Date: <span id="date"></span><br/>
Time: <span id="time"></span><br/>
<button type="button" onclick="load()">Load Information</button>
</body>
</html>
Java हमें json.simple Library में JSON Data को पढ़ने और लिखने की अनुमति देता है. Java में हमें json.simple Library का उपयोग करके JSON Object को Encode और Decode कर सकते हैं.
Java JSON Object जो java.util.HashMap का उपयोग करते हुए JSON Object को Encode करने के लिए बहुत से सरल उदाहरण है.
import org.json.simple.JSONObject;
public class JsonExample1{
public static void main(String args[]){
JSONObject obj=new JSONObject();
obj.put("name","Sharukh");
obj.put("age",new Integer(37));
obj.put("salary",new Double(700000));
System.out.print(obj);
}}
Java में Map का उपयोग करते हुए JSON Object को Encode करने के लिए आप नीचे Example में देख सकते है.
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONValue;
public class JsonExample2{
public static void main(String args[]){
Map obj=new HashMap();
obj.put("name","sonu");
obj.put("age",new Integer(23));
obj.put("salary",new Double(500000));
String jsonText = JSONValue.toJSONString(obj);
System.out.print(jsonText);
}}
JSONObject एक java.util.Map और JSONArray एक java.util.List है, ताकि आप उन्हें Map या List के मानक संचालन के साथ उपयोग कर सकते है.
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
class JsonDecodeDemo {
public static void main(String[] args){
JSONParser parser = new JSONParser();
String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
try{
Object obj = parser.parse(s);
JSONArray array = (JSONArray)obj;
System.out.println("The 2nd element of array");
System.out.println(array.get(1));
System.out.println();
JSONObject obj2 = (JSONObject)array.get(1);
System.out.println("Field \"1\"");
System.out.println(obj2.get("1"));
s = "{}";
obj = parser.parse(s);
System.out.println(obj);
s = "[5,]";
obj = parser.parse(s);
System.out.println(obj);
s = "[5,,2]";
obj = parser.parse(s);
System.out.println(obj);
}catch(ParseException pe){
System.out.println("position: " + pe.getPosition());
System.out.println(pe);
}
}
}