जेएसओएन । पार्स ()
JSON का एक सामान्य उपयोग किसी वेब सर्वर से/से डेटा का आदान-प्रदान करना है।
वेब सर्वर से डेटा प्राप्त करते समय, डेटा हमेशा एक स्ट्रिंग होता है।
डेटा को के साथ पार्स करें JSON.parse()
, और डेटा एक जावास्क्रिप्ट ऑब्जेक्ट बन जाता है।
उदाहरण - JSON को पार्स करना
कल्पना कीजिए कि हमें यह पाठ एक वेब सर्वर से प्राप्त हुआ है:
'{"name":"John", "age":30, "city":"New York"}'
JSON.parse()
टेक्स्ट को जावास्क्रिप्ट ऑब्जेक्ट में बदलने के लिए जावास्क्रिप्ट फ़ंक्शन का उपयोग करें :
const obj = JSON.parse('{"name":"John", "age":30, "city":"New
York"}');
सुनिश्चित करें कि टेक्स्ट JSON फॉर्मेट में है, अन्यथा आपको सिंटैक्स त्रुटि मिलेगी।
अपने पेज में जावास्क्रिप्ट ऑब्जेक्ट का प्रयोग करें:
उदाहरण
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = obj.name;
</script>
JSON के रूप में सरणी
किसी सरणी से प्राप्त JSON पर का उपयोग करते समय JSON.parse()
, विधि एक जावास्क्रिप्ट ऑब्जेक्ट के बजाय एक जावास्क्रिप्ट सरणी लौटाएगी।
उदाहरण
const text = '["Ford", "BMW", "Audi", "Fiat"]';
const myArr = JSON.parse(text);
अपवाद
पार्सिंग तिथियां
JSON में दिनांक वस्तुओं की अनुमति नहीं है।
यदि आपको एक तिथि शामिल करने की आवश्यकता है, तो इसे एक स्ट्रिंग के रूप में लिखें।
आप इसे बाद में किसी दिनांक वस्तु में परिवर्तित कर सकते हैं:
उदाहरण
एक स्ट्रिंग को एक तिथि में कनवर्ट करें:
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const obj = JSON.parse(text);
obj.birth = new Date(obj.birth);
document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;
या, आप JSON.parse()
फ़ंक्शन के दूसरे पैरामीटर का उपयोग कर सकते हैं, जिसे रिवाइवर कहा जाता है ।
रिवाइवर पैरामीटर एक ऐसा फ़ंक्शन है जो मूल्य वापस करने से पहले प्रत्येक संपत्ति की जांच करता है।
उदाहरण
रिवाइवर फ़ंक्शन का उपयोग करके स्ट्रिंग को दिनांक में बदलें :
const text =
'{"name":"John", "birth":"1986-12-14", "city":"New York"}';
const 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 में फ़ंक्शंस की अनुमति नहीं है।
यदि आपको कोई फ़ंक्शन शामिल करने की आवश्यकता है, तो इसे एक स्ट्रिंग के रूप में लिखें।
आप इसे बाद में किसी फ़ंक्शन में वापस परिवर्तित कर सकते हैं:
उदाहरण
एक स्ट्रिंग को फ़ंक्शन में कनवर्ट करें:
const text =
'{"name":"John", "age":"function () {return
30;}", "city":"New York"}';
const obj = JSON.parse(text);
obj.age = eval("(" + obj.age + ")");
document.getElementById("demo").innerHTML = obj.name + ", " +
obj.age();
आपको JSON में फ़ंक्शंस का उपयोग करने से बचना चाहिए, फ़ंक्शंस अपना दायरा खो देंगे, और आपको eval()
उन्हें वापस फ़ंक्शंस में बदलने के लिए उपयोग करना होगा।