। JSON : XML के लिए फैट-फ्री विकल्प
JSON को व्यापक रूप से उन लोगों द्वारा अपनाया गया है जिन्होंने पाया कि वितरित अनुप्रयोगों और सेवाओं का उत्पादन करना बहुत आसान है। JSON के लिए आधिकारिक इंटरनेट मीडिया प्रकार है application/json
RFC 4627
। JSON फ़ाइल नाम एक्सटेंशन का उपयोग करता है .json
।
Text जावास्क्रिप्ट ऑब्जेक्ट नोटेशन ( JSON
) एक हल्का, पाठ-आधारित, भाषा-स्वतंत्र डेटा इंटरचेंज प्रारूप है। JSON का उपयोग किसी भी प्रोग्रामिंग भाषा में लिखे गए अनुप्रयोगों के बीच डेटा का आदान-प्रदान करने के लिए किया गया है।
JSON ऑब्जेक्ट एक एकल ऑब्जेक्ट है जिसमें दो फ़ंक्शन, पार्स और स्ट्रिंग होते हैं, जो JSON टेक्स्ट को पार्स और बनाने के लिए उपयोग किए जाते हैं।
- JSON.stringify एक स्ट्रिंग का उत्पादन करता है जो निम्न JSON व्याकरण के अनुरूप होता है।
- JSON.parse एक स्ट्रिंग को स्वीकार करता है जो JSON व्याकरण के अनुरूप है।
ParseJSON विधि में शामिल किया जाएगा Fourth Edition of ECMAScript
। इस बीच, json.org पर जावास्क्रिप्ट कार्यान्वयन उपलब्ध है।
var objLiteral = {foo: 42}; // JavaScript Object
console.log('Object Literal : ', objLiteral ); // Object {foo: 42}foo: 42__proto__: Object
// This is a JSON String, like what you'd get back from an AJAX request.
var jsonString = '{"foo": 452}';
console.log('JOSN String : ', jsonString ); // {"foo": 452}
// This is how you deserialize that JSON String into an Object.
var serverResposnceObject = JSON.parse( jsonString );
console.log('Converting Ajax response to JavaScript Object : ', serverResposnceObject); // Object {foo: 42}foo: 42 __proto__: Object
// And this is how you serialize an Object into a JSON String.
var serverRequestJSON = JSON.stringify( objLiteral );
console.log('Reqesting server with JSON Data : ', serverRequestJSON); // '{"foo": 452}'
JSON जावास्क्रिप्ट का सबसेट है। जावास्क्रिप्ट ECMAScript प्रोग्रामिंग लैंग्वेज स्टैंडर्ड से लिया गया था।
► ईसीएमएस्क्रिप्ट
ECMAScript दुनिया की सबसे अधिक इस्तेमाल की जाने वाली सामान्य प्रयोजन प्रोग्रामिंग भाषाओं में से एक बन गई है। यह वेब ब्राउज़र में एम्बेडेड भाषा के रूप में जाना जाता है, लेकिन सर्वर और एम्बेडेड अनुप्रयोगों के लिए भी व्यापक रूप से अपनाया गया है। ECMAScript कई उद्भव प्रौद्योगिकियों पर आधारित है, सबसे प्रसिद्ध जा रहा है JavaScript
(नेटस्केप कम्युनिकेशंस)) और JScript
(Microsoft Corporation)।) । हालांकि 1994 से पहले, ECMA को "यूरोपीय कंप्यूटर निर्माता संघ" के रूप में जाना जाता था, 1994 के बाद, जब संगठन वैश्विक हो गया, तो ऐतिहासिक कारणों से "ट्रेडमार्क" "एक्मा" रखा गया।
ECMAScript भाषा है, जबकि जावास्क्रिप्ट, JScript और यहां तक कि ActionScript को भी कहा जाता है "Dialects"
।
बोलियाँ एक ही भाषा से ली गई हैं। वे एक-दूसरे से काफी मिलते-जुलते हैं क्योंकि वे एक ही भाषा से निकले हैं लेकिन उनमें कुछ बदलाव आए हैं। भाषा में ही एक बोली भिन्नता है। यह एक ही भाषा से लिया गया है।
- एसक्यूएल भाषा - हाइबरनेट माय SQL बोली, ओरेकल बोली, .. जिसमें कुछ परिवर्तन या अतिरिक्त कार्यक्षमता है।
अपने उपयोगकर्ताओं के ब्राउज़र और कंप्यूटर के बारे में जानकारी।
navigator.appName // "Netscape"
ECMAScript स्क्रिप्टिंग भाषा है जो जावास्क्रिप्ट का आधार बनाती है। ।JavaScript
language resources
ECMA-262
Links
Initial Edition, June 1997
PDF.
2nd Edition, August 1998
PDF.
3rd Edition, December 1999
PDF.
5th Edition, December 2009
PDF.
5.1 Edition, June 2011
HTML.
6th Edition, June 2015
HTML.
7ᵗʰ Edition, June 2016
HTML.
8th edition, June 2017
HTML.
9th Edition, 2018
HTML.
नोट « ECMAScript का 4 वाँ संस्करण प्रकाशित नहीं हुआ क्योंकि कार्य अपूर्ण था ।
JSON संरचित डेटा के पोर्टेबल प्रतिनिधित्व के लिए प्रारूपण नियमों के एक छोटे सेट को परिभाषित करता है।
► कुंजी मूल्यों को उद्धृत किया जाना चाहिए, केवल कुंजी के लिए स्ट्रिंग्स की अनुमति है। यदि आप स्ट्रिंग के अलावा अन्य का उपयोग करते हैं तो यह स्ट्रिंग में परिवर्तित हो जाएगा। लेकिन स्ट्रिंग के अलावा कुंजी का उपयोग करने की सिफारिश नहीं की गई है। इस तरह एक उदाहरण की जाँच करें -{ 'key':'val' }
से अधिकRFC 4627 - jsonformatter
var storage = {
0 : null,
1 : "Hello"
};
console.log( storage[1] ); // Hello
console.log( JSON.stringify( storage ) ); // {"0":null,"1":"Hello","2":"world!"}
var objLiteral = {'key1':'val1'};
var arr = [10, 20], arr2 = [ 'Yash', 'Sam' ];
var obj = { k: 'v' }, obj2 = { k2: 'v2' };
var fun = function keyFun() {} ;
objLiteral[ arr ] = 'ArrayVal'; objLiteral[ arr2 ] = 'OverridenArrayVal';
objLiteral[ obj ] = 'ObjectVal'; objLiteral[ obj2 ] = 'OverridenObjectVal';
objLiteral[ fun ] = 'FunctionVal';
console.log( objLiteral );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log( JSON.stringify( objLiteral ) );
// {"key1":"val1","10,20":"ArrayVal","Yash,Sam":"OverridenArrayVal","[object Object]":"OverridenObjectVal","function keyFun() {}":"FunctionVal"}
console.log( JSON.parse( JSON.stringify( objLiteral ) ) );
// Object {key1: "val1", 10,20: "ArrayVal", Yash,Sam: "OverridenArrayVal", [object Object]: "OverridenObjectVal", function keyFun() {}: "FunctionVal"}
console.log('Accessing Array Val : ', objLiteral[ [10,20] ] );
console.log('Accessing Object Val : ', objLiteral[ '[object Object]' ] );
console.log('Accessing Function Val : ', objLiteral[ 'function keyFun() {}' ] );
And JSON स्ट्रिंग्स को "और नहीं 'के साथ उद्धृत किया जाना चाहिए। एक स्ट्रिंग बहुत सी या जावा स्ट्रिंग की तरह है। स्ट्रिंग्स को दोहरे उद्धरण चिह्नों में लपेटा जाना चाहिए।
- साहित्य निश्चित मूल्य हैं, चर नहीं, जो आप अपनी लिपि में सचमुच प्रदान करते हैं।
- एक स्ट्रिंग शून्य या अधिक वर्णों का एक क्रम है, जो बैकस्लैश एस्केप के साथ उद्धरण में लिपटे हुए हैं, वही प्रोग्रामिंग भाषाओं में उपयोग किया जाता है।
- Bol - विशेष प्रतीकों को स्ट्रिंग में अनुमति दी जाती है लेकिन उपयोग करने के लिए दोबारा नहीं।
- \ "- विशेष वर्ण बच सकते हैं। लेकिन बचने के लिए नहीं (') एकल उद्धरण। सख्त मोड में यह फेंक देगा और त्रुटि -
SyntaxError: Unexpected token ' in JSON
{ "Hai\" \n Team 🔫":5, "Bye \'": 7 }
ऑनलाइन JSON Edtions पर इस कोड के साथ जांचें।Modes
notStrict
,
Strinct
.
var jsonString = "{'foo': 452}"; // {'foo': 452}
var jsonStr = '{"foo": 452}'; // {"foo": 452}
JSON.parse( jsonString ); // Unexpected token ' in JSON at position 1(…)
JSON.parse( jsonStr ); // Object {foo: 452}
objLiteral['key'] = 'val'; // Object {foo: 42, key: "val"}
objLiteral.key2 = 'val';
// objLiteral.key\n3 - SyntaxError: Invalid or unexpected token
objLiteral['key\n3'] = 'val'; // Object {"foo": "42", key: "val", key2: "val", "key↵3": "val"}
JSON.stringify( objLiteral ); // {"foo":"42","key":"val","key2":"val","key\n3":"val"}
ऑब्जेक्ट प्रॉपर्टी एक्सेसर्स किसी ऑब्जेक्ट के गुणों को डॉट नोटेशन या ब्रैकेट नोटेशन का उपयोग करके एक्सेस प्रदान करते हैं।
► आपके पास मूल्यों की एक अधिक सीमित सीमा है (उदाहरण के लिए कोई कार्य अनुमत नहीं है)। एक मूल्य डबल कोट्स, संख्या, बूलियन, अशक्त, वस्तु या सरणी में एक स्ट्रिंग हो सकता है। इन संरचनाओं को नस्ट किया जा सकता है।
var objLiteral = {};
objLiteral.funKey = function sayHello() {
console.log('Object Key with function as value - Its outcome message.');
};
objLiteral['Key'] = 'Val';
console.log('Object Literal Fun : ', objLiteral );
// Object Literal Fun : Object {Key: "Val"}Key: "Val"funKey: sayHello()__proto__: Object
console.log( JSON.stringify( objLiteral ) ); // {"Key":"Val"}
► JavaScript
ECMAScript मानक के सबसे लोकप्रिय कार्यान्वयन है। जावास्क्रिप्ट की मुख्य विशेषताएं ECMAScript मानक पर आधारित हैं, लेकिन जावास्क्रिप्ट में अन्य अतिरिक्त विशेषताएं भी हैं जो ECMA विनिर्देशों / मानक में नहीं हैं। हर ब्राउज़र में एक जावास्क्रिप्ट दुभाषिया होता है।
जावास्क्रिप्ट एक गतिशील रूप से टाइप की गई भाषा है। इसका मतलब है कि जब आप इसे घोषित करते हैं तो आपको डेटा प्रकार के चर को निर्दिष्ट करने की आवश्यकता नहीं होती है, और स्क्रिप्ट निष्पादन के दौरान डेटा प्रकार स्वचालित रूप से आवश्यकतानुसार परिवर्तित हो जाते हैं।
Literals
:
'37' - 7 // 30
'37' + 7 // "377"
+'37' + 7 // 44
+'37' // 37
'37' // "37"
parseInt('37'); // 37
parseInt('3.7'); // 3
parseFloat(3.7); // 3.7
// An alternative method of retrieving a number from a string is with the + (unary plus) operator:
+'3.7' // 3.7
Object literals
RFC 7159
एक ऑब्जेक्ट संरचना को शून्य या अधिक नाम / मूल्य जोड़े (या सदस्यों) के आसपास घुंघराले ब्रैकेट की एक जोड़ी के रूप में दर्शाया गया है। एक नाम एक स्ट्रिंग है। प्रत्येक नाम के बाद एक एकल बृहदान्त्र आता है, नाम को मूल्य से अलग करता है। एक एकल अल्पविराम निम्नलिखित नाम से एक मान को अलग करता है। किसी वस्तु के नाम अद्वितीय होने चाहिए।
ECMAScript प्रोटोटाइप-आधारित विरासत का समर्थन करता है। प्रत्येक कंस्ट्रक्टर का एक संबद्ध प्रोटोटाइप होता है, और उस कंस्ट्रक्टर द्वारा बनाई गई प्रत्येक ऑब्जेक्ट का उसके निर्माता के साथ जुड़े प्रोटोटाइप (ऑब्जेक्ट का प्रोटोटाइप कहा जाता है) का एक अंतर्निहित संदर्भ होता है। इसके अलावा, एक प्रोटोटाइप में इसके प्रोटोटाइप के लिए एक गैर-शून्य अंतर्निहित संदर्भ हो सकता है, और इसी तरह; इसे प्रोटोटाइप चेन कहा जाता है।
एक वर्ग-आधारित वस्तु-उन्मुख भाषा में, सामान्य रूप से, राज्य उदाहरणों द्वारा किया जाता है, कक्षाएं कक्षाओं द्वारा ली जाती हैं, और विरासत केवल संरचना और व्यवहार की होती है। ECMAScript में, राज्य और तरीके वस्तुओं द्वारा किए जाते हैं, और संरचना, व्यवहार और राज्य सभी विरासत में मिलते हैं।
एक प्रोटोटाइप ईसीएमएस्क्रिप्ट में संरचना, स्थिति और व्यवहार विरासत को लागू करने के लिए उपयोग की जाने वाली वस्तु है। जब कोई कंस्ट्रक्टर एक ऑब्जेक्ट बनाता है, तो वह ऑब्जेक्ट स्पष्ट रूप से संपत्ति के संदर्भों को हल करने के उद्देश्य से कंस्ट्रक्टर के संबंधित प्रोटोटाइप का संदर्भ देता है। कंस्ट्रक्टर के जुड़े प्रोटोटाइप को प्रोग्राम एक्सप्रेशन constructor.prototype द्वारा संदर्भित किया जा सकता है, और किसी ऑब्जेक्ट के प्रोटोटाइप में जोड़े गए गुण, इनहेरिटेंस के माध्यम से, सभी ऑब्जेक्ट्स द्वारा प्रोटोटाइप को साझा करते हुए साझा किए जाते हैं।