📄 JSON = Data Exchange
JSON is everywhere. JSON parsing and manipulation is essential for JavaScript developers.
📝 JSON Operations
// Parse JSON
const jsonString = '{"name":"John","age":30}';
const obj = JSON.parse(jsonString);
// Stringify JSON
const objData = { name: 'John', age: 30 };
const jsonData = JSON.stringify(objData);
// Pretty Print
console.log(JSON.stringify(objData, null, 2));
// Handle Errors
try {
const data = JSON.parse(invalidJson);
} catch (error) {
console.error('Invalid JSON:', error);
}
// Nested JSON
const data = {
user: {
name: 'John',
address: {
city: 'New York',
country: 'USA'
}
}
};
// Access Nested Properties
const city = data.user.address.city;
🎯 Advanced JSON
// JSON with Dates
const withDate = {
name: 'John',
createdAt: new Date()
};
const json = JSON.stringify(withDate);
// Dates become strings
// Custom Serialization
const data = {
name: 'John',
toJSON() {
return { name: this.name.toUpperCase() };
}
};
// JSON Reviver
const jsonData = '{"name":"John","createdAt":"2024-01-15T10:00:00Z"}';
const parsed = JSON.parse(jsonData, (key, value) => {
if (key === 'createdAt') {
return new Date(value);
}
return value;
});
// Deep Clone
const original = { a: 1, b: { c: 2 } };
const cloned = JSON.parse(JSON.stringify(original));
// JSON Validation
function isValidJSON(str) {
try {
JSON.parse(str);
return true;
} catch {
return false;
}
}
// Merge JSON Objects
function mergeJSON(obj1, obj2) {
return { ...obj1, ...obj2 };
}
💡 JSON Tips
- Always validate JSON
- Use try-catch for parsing
- Pretty print for debugging
- Handle nested data carefully
- Use JSON schema for validation
JSON is the backbone of data exchange. Mastering JSON operations is essential for modern developers.
