📋
Browser & Storage

JSON

JavaScript Object Notation
💡 JSON ek universal "translation format" hai — jaise ek international menu jo har language mein samझा jaa sake. JavaScript objects ko JSON mein convert karke, KISI BHI programming language (Python, Java, PHP) ko bhej sakte ho — sab JSON samajhte hain.

JSON.stringify(obj) JavaScript object/array ko JSON STRING mein convert karta hai — APIs ko data bhejने, localStorage mein save karne ke liye. JSON.parse(jsonString) ulta karta hai — JSON string ko wapas JavaScript object mein.

JSON syntax JavaScript object literal jaisा dikhता hai, lekin STRICTER hai — property names hamesha double-quotes mein honi chahiye, trailing commas allowed nahi, functions/undefined JSON mein represent nahi ho sakte.

const user = {
  name: "Aarav",
  age: 20,
  skills: ["JavaScript", "Python"]
};

const jsonString = JSON.stringify(user);
console.log(jsonString);
// '{"name":"Aarav","age":20,"skills":["JavaScript","Python"]}'

const parsedBack = JSON.parse(jsonString);
console.log(parsedBack.name);   // "Aarav" — wapas normal object

// Pretty-printing (readable format, debugging ke liye):
console.log(JSON.stringify(user, null, 2));   // 2-space indentation
📋
JSON ek universal "translation format" hai — jaise ek international menu jo har language mein samझा jaa sake. JavaScript objects ko JSON mein convert karke, KISI BHI programming language (Python, Java, PHP) ko bhej sakte ho — sab JSON samajhte hain.
1 / 2
⚡ Quick Recap
  • stringify() = object → JSON string, parse() = JSON string → object
  • APIs, localStorage, config files — sabme JSON common format hai
  • Functions/undefined JSON mein represent nahi ho sakte — silently skip hote hain
Is page mein (2 subtopics)

JSON.stringify(obj, replacer, space) — dusra parameter (replacer) specific keys ko filter/transform kar sakta hai, teesra (space) pretty-printing indentation control karta hai (debugging/readability ke liye).

const user = { name: "Aarav", password: "secret123", age: 20 };

// Sensitive data exclude karna:
const safe = JSON.stringify(user, ["name", "age"]);   // sirf ye keys included
console.log(safe);   // '{"name":"Aarav","age":20}'

// Pretty printing:
console.log(JSON.stringify(user, null, 2));
// {
//   "name": "Aarav",
//   ...
// }
💡Tip: Replacer array APIs ko response bhejте waqt sensitive data (passwords, internal IDs) accidentally leak hone se bachने ke liye ek quick safety net ho sakta hai — lekin server-side proper filtering zyada reliable approach hai.

JSON.stringify() CIRCULAR references (jaha object khud ko, directly ya indirectly, reference karta hai) par ERROR throw karta hai — "Converting circular structure to JSON".

const obj = { name: "Aarav" };
obj.self = obj;   // circular reference!

// JSON.stringify(obj);   // ERROR: Converting circular structure to JSON

// Modern fix — structuredClone() circular references handle kar sakta hai:
const cloned = structuredClone(obj);   // JSON.stringify() se better yaha
⚠️Common Mistake: Circular references accidentally ban sakte hain complex object graphs mein (jaise parent-child relationships jaha child apne parent ko bhi reference karta hai) — JSON.stringify() se pehle is scenario ka dhyan rakhna zaroori hai.