JSON.parse()
- पिछला पृष्ठ JSON डाटा टाइप
- अगला पृष्ठ JSON सर्वाइज़
JSON का सामान्य उपयोग वेब सर्वर के साथ डाटा ट्रांसफर करने के लिए है。
वेब सर्वर से डाटा प्राप्त करते समय, डाटा हमेशा एक टेक्स्ट होता है。
द्वारा JSON.parse()
डाटा पार्सिंग करें, जो जेसक्रिप्ट ऑब्जेक्ट बनेगा。
उदाहरण – JSON पार्सिंग
सोचिए कि हमने वेब सर्वर से इस टेक्स्ट को प्राप्त किया है:
'{ "name":"Bill Gates", "age":62, "city":"Seattle"}'
जेसक्रिप्ट फ़ंक्शन का उपयोग करें JSON.parse()
टेक्स्ट को JavaScript ऑब्जेक्ट में बदलें:
var obj = JSON.parse('{ "name":"Bill Gates", "age":62, "city":"Seattle"}');
निश्चित करें कि यह टेक्स्ट JSON फॉर्मेट में लिखा है, नहीं तो वर्तनी त्रुटि होगी。
अपने पृष्ठ में JavaScript ऑब्जेक्ट का उपयोग करें:
उदाहरण
<p id="demo"></p> <script> document.getElementById("demo").innerHTML = obj.name + ", " + obj.age; </script>
सर्वर से आया JSON
आप एक्सेसेस जेसक्रिप्ट द्वारा वेब सर्वर से JSON का अनुरोध कर सकते हैं。
जब तक सर्वर का प्रतिसाद JSON फॉर्मेट में लिखा हो, आप इसे जेसक्रिप्ट ऑब्जेक्ट में पार्स कर सकते हैं。
उदाहरण
वेब सर्वर से डाटा प्राप्त करने के लिए XMLHttpRequest का उपयोग करें:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "json_demo.txt", true); xmlhttp.send();
जैसे JSON के एक्सेसेस
जब आयत्त से उद्भवी एक्सेसेस के लिए JSON का उपयोग करते हैं JSON.parse()
बाद में, यह विधि जेसक्रिप्ट एक्सेसेस नहीं देगी, बल्कि जेसक्रिप्ट ऑब्जेक्ट देगी。
उदाहरण
वेब सर्वर से बचाया गया JSON एक एक्सेसेस था:
var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myArr = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myArr[0]; } }; xmlhttp.open("GET", "json_demo_array.txt", true); xmlhttp.send();
अपवाद
तारीख विश्लेषण
JSON में तारीख ऑब्जैक्ट की अनुमति नहीं है。
अगर आप तारीख को शामिल करना चाहते हैं, तो इसे शब्द-शृंखला के रूप में लिखें。
बाद में आप इसे तारीख ऑब्जैक्ट में वापस बदल सकते हैं:
उदाहरण
शब्द-शृंखला को तारीख में बदलें:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var obj = JSON.parse(text); obj.birth = new Date(obj.birth); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
या आप इसे इस तरह से इस्तेमाल कर सकते हैं JSON.parse()
फ़ंक्शन का दूसरा पारामीटर, जिसे reviver。
यह reviver पारामीटर फ़ंक्शन है, जो प्रत्येक गुण को वापस ले जाने से पहले जाँच करता है。
उदाहरण
शब्द-शृंखला को तारीख में बदलने के लिए reviver फ़ंक्शन का उपयोग करें:
var text = '{ "name":"Bill Gates", "birth":"1955-10-28", "city":"Seattle"}'; var obj = JSON.parse(text, function (key, value) { if (key == "birth") { return new Date(value); } else { return value; }); document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
फ़ंक्शन विश्लेषण
JSON में फ़ंक्शन की अनुमति नहीं है。
अगर आप फ़ंक्शन को शामिल करना चाहते हैं, तो इसे शब्द-शृंखला के रूप में लिखें。
बाद में आप इसे फ़ंक्शन में वापस बदल सकते हैं:
उदाहरण
कोई शब्द-शृंखला को फ़ंक्शन में बदलें:
var text = '{ "name":"Bill Gates", "age":"function () {return 62;}", "city":"Seattle"}'; var obj = JSON.parse(text); obj.age = eval("(" + obj.age + ")"); document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();
आपको JSON में फ़ंक्शन का उपयोग करने से बचना चाहिए, क्योंकि फ़ंक्शन अपने अवसर को खो देते हैं और आपको इसके लिए इस्तेमाल करना होगा eval()
इन्हें फ़ंक्शन बदल दिया जाए
ब्राउज़र समर्थन
सभी प्रमुख ब्राउज़र और सबसे नए एससीएमएस (जावास्क्रिप्ट) मानक शामिल हैं JSON.parse()
फ़ंक्शन:
नीचे दिए गए तालिका के अनुक्रम को पूरी तरह से सहारा दिया गया है JSON.parse()
फ़ंक्शन के पहले ब्राउज़र संस्करण:
हाँ | 8.0 | 3.5 | 4.0 | 10.0 |
अधिक पुराने ब्राउज़र के लिए, नीचे दिए गए पते में जावास्क्रिप्ट लाइब्रेरी उपलब्ध है:
- पिछला पृष्ठ JSON डाटा टाइप
- अगला पृष्ठ JSON सर्वाइज़