JSON.stringify() मेथड
JSON.stringify() JavaScript ऑब्जेक्ट/वैल्यू को JSON स्ट्रिंग में बदलता है। सर्वर को डेटा भेजते समय आवश्यक (सर्वर स्ट्रिंग एक्सपेक्ट करता है)।
सिंटैक्स
JSON.stringify(value, replacer, space)
- value - सीरियलाइज़ करने वाला वैल्यू
- replacer (वैकल्पिक) - फंक्शन या ऐरे (फिल्टर/ट्रांसफॉर्म)
- space (वैकल्पिक) - इंडेंटेशन (संख्या या स्ट्रिंग)
उदाहरण 1: बुनियादी ऑब्जेक्ट
<html> <body> <p id="demo"></p> <script>
var obj = {name: "रेखा", age: 40, city: "न्यूयॉर्क"};
var json = JSON.stringify(obj);
document.getElementById("demo").innerHTML = json;
</script> </body> </html>
आउटपुट
{"name":"रेखा","age":40,"city":"न्यूयॉर्क"}
उदाहरण 2: नेस्टेड ऑब्जेक्ट/ऐरे
<html> <body> <p id="demo"></p> <script>
var obj = {
"name": "रमेश",
"age": 30,
"family": [{"mother": "गीता", "father": "राव"}],
"city": "बर्लिन"
};
var json = JSON.stringify(obj);
document.getElementById("demo").innerHTML = json;
</script> </body> </html>
आउटपुट
{"name":"रमेश","age":30,"family":[{"mother":"गीता","father":"राव"}],"city":"बर्लिन"}
उन्नत उपयोग
1. प्रीटी प्रिंटिंग (space पैरामीटर)
<script>
var obj = {a: 1, b: {c: 2}};
JSON.stringify(obj); // {"a":1,"b":{"c":2}}
JSON.stringify(obj, null, 2); // इंडेंट 2 स्पेस
JSON.stringify(obj, null, '\t'); // टैब इंडेंट
</script>
2. Replacer फंक्शन (फिल्टर/ट्रांसफॉर्म)
<script>
var obj = {name: "टेस्ट", password: "secret", age: 25};
// पासवर्ड छुपाएं
var json = JSON.stringify(obj, (key, value) => {
if (key === "password") return undefined; // छोड़ दें
return value;
});
// {"name":"टेस्ट","age":25}
// या ऐरे से कीज़ चुनें
var json2 = JSON.stringify(obj, ["name", "age"]);
// {"name":"टेस्ट","age":25}
</script>
3. toJSON() मेथड के साथ कस्टम सीरियलाइज़ेशन
<script>
var user = {
name: "अमित",
password: "secret",
toJSON() {
return {name: this.name}; // केवल नाम सीरियलाइज़
}
};
JSON.stringify(user); // {"name":"अमित"}
</script>
नजरअंदाज किए जाने वाले वैल्यूज
undefinedFunctionSymbol- सर्कुलर रेफरेंस (एरर थ्रो करता है)
सर्कुलर रेफरेंस हैंडलिंग
<script>
var a = {name: "A"};
var b = {name: "B", ref: a};
a.ref = b; // सर्कुलर!
// JSON.stringify(a) → TypeError
// समाधान: replacer में WeakSet उपयोग
const seen = new WeakSet();
JSON.stringify(a, (key, val) => {
if (typeof val === 'object' && val !== null) {
if (seen.has(val)) return '[Circular]';
seen.add(val);
}
return val;
});
</script>