सबसे पहले आपको पता होना चाहिए क्या JSON है:
- यह भाषा नास्तिक डेटा विनिमय प्रारूप है।
जेएसओएन का सिंटैक्स जावास्क्रिप्ट ऑब्जेक्ट लिटल नोटेशन से प्रेरित था, लेकिन उनके बीच अंतर हैं।
उदाहरण के लिए, JSON में सभी कुंजी, उद्धृत किया जाना चाहिए, जबकि वस्तु शाब्दिक में यह आवश्यक नहीं है:
// JSON:
{ "foo": "bar" }
// Object literal:
var o = { foo: "bar" };
उद्धरण JSON पर अनिवार्य हैं क्योंकि जावास्क्रिप्ट (ECMAScript 3 में वास्तव में अधिक में संस्करण।), संपत्ति के नाम के रूप आरक्षित शब्द के उपयोग उदाहरण के लिए स्वीकृत नहीं है तो:
var o = { if: "foo" }; // SyntaxError in ES3
है, एक स्ट्रिंग एक संपत्ति नाम के रूप में शाब्दिक (समर्थक के हवाले से उपयोग करते हुए perty नाम) कोई समस्या नहीं देता है:
var o = { "if": "foo" };
तो "संगतता" (और आसान हो सकता है eval'ing) उद्धरण अनिवार्य हैं के लिए?।
JSON में डेटा प्रकार भी निम्न मान तक ही सीमित हैं:
string
number
object
array
- एक शाब्दिक रूप में:
Strings
परिवर्तन की व्याकरण। कोडबल कोट्स द्वारा सीमित किया गया है, जबकि जावास्क्रिप्ट में, आप एकल या दोहरे उद्धरणों को एक दूसरे के साथ उपयोग कर सकते हैं।
// Invalid JSON:
{ "foo": 'bar' }
Numbers
के स्वीकार किए जाते हैं JSON व्याकरण भी बदल जाता है, जावास्क्रिप्ट में आप हेक्साडेसिमल Literals उपयोग कर सकते हैं, उदाहरण के 0xFF
के लिए, या (कुख्यात) ऑक्टल Literals उदा 010
। JSON में आप केवल दशमलव दशमलव का उपयोग कर सकते हैं।
// Invalid JSON:
{ "foo": 0xFF }
कुछ गाड़ी कार्यान्वयन (Firefox 3.5+, IE8 +, json2.js) जहां अष्टाधारी शाब्दिक को गलत तरीके से अनुमति दी जाती है, उदाहरण के लिए कर रहे हैं JSON.parse('01')
को SyntaxError
का उत्पादन करना चाहिए।
एक समय में एक प्रश्न, कृपया। –
संभावित डुप्लिकेट [जेएसओएन और ऑब्जेक्ट लिटल नोटेशन के बीच क्या अंतर है?] (Http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation) – Teepeemm