JSON
JSON কী, syntax, stringify/parse, ডেটা আনা-পাঠান, নেস্টেড ডেটা, error handling — বাংলায়।
JSON (JavaScript Object Notation) হলো ডেটা আদান-প্রদানের মানকা ফরম্যাট। API-এর সাথে প্রায় সব কথোপকথন JSON-এ হয় — ফ্রন্টেন্ড ও ব্যাকেন্ডের সেতু।
JSON দেখতে কেমন
{
"name": "রহিম",
"age": 28,
"isStudent": false,
"courses": ["JS", "React"],
"address": {
"city": "ঢাকা",
"zip": "1216"
}
}JSON-এ object key সদা double quotes-এ, মান string হলে double quotes-এ। JavaScript literal নয় — তাই ভাষার কঠোর form।
JSON.parse — পড়া
const text = '{"name":"রহিম","age":28}';
const obj = JSON.parse(text);
console.log(obj.name); // রহিম
console.log(obj.age); // 28JSON.parse(string) JSON-কে JavaScript object-এ রূপ দেয়। invalid JSON পাঠালে SyntaxError।
JSON.stringify — লেখা
const user = {
name: "রহিম",
age: 28,
skills: ["JS", "React"],
};
const json = JSON.stringify(user);
console.log(json);
// {"name":"রহিম","age":28,"skills":["JS","React"]}
// সুসজ্জিত
console.log(JSON.stringify(user, null, 2));JSON.stringify(value) object-কে JSON string-এ রূপ দেয়। null, 2 argument দিলে indent-সহ পাঠযোগ্য আউটপুট।
দ্বিতীয় argument — replacer
const user = {
name: "রহিম",
age: 28,
password: "secret123",
};
// password বাদ
const safe = JSON.stringify(user, ["name", "age"]);
console.log(safe); // {"name":"রহিম","age":28}
// অথবা function
const safe2 = JSON.stringify(user, (key, value) =>
key === "password" ? undefined : value,
);
console.log(safe2);API-তে ব্যবহার
async function saveUser() {
const res = await fetch("/api/user", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ name: "রহিম", age: 28 }),
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const result = await res.json(); // উত্তর পড়া
console.log(result);
}নেস্টেড ডেটা
const data = {
users: [
{ id: 1, name: "রহিম", posts: [{ title: "অ্যারে" }] },
{ id: 2, name: "করিম", posts: [] },
],
};
const text = JSON.stringify(data);
const back = JSON.parse(text);
console.log(back.users[0].posts[0].title); // অ্যারে
console.log(back.users.length); // 2error handling
function safeParse(text) {
try {
return { ok: true, data: JSON.parse(text) };
} catch (err) {
return { ok: false, error: err.message };
}
}
const good = safeParse('{"a":1}');
console.log(good.ok); // true
const bad = safeParse("{a:1}");
console.log(bad.ok); // false — Invalid JSONlocalStorage-এ JSON
localStorage-এ object-কে রাখা যায় না — stringify করে রেখে parse করে পড়া হয়। বিস্তারিত browser-storage অধ্যায়ে।
| কাজ | মেথড | নোট |
|---|---|---|
| JSON → object | JSON.parse | invalid হলে throw |
| object → JSON | JSON.stringify | null, 2 দিয়ে print |
| তালিকা বাদ | replacer argument | password-এর মতো ক্ষেত্রে |
| API পাঠানো | JSON.stringify + fetch body | Content-Type ঠিক করুন |
JSON.stringify-এ undefined, function, Symbol মান বাদ যায় — ডেটা পেতে গেলে এই মানগুলো other-JSON-able (string/number) করুন।
"JSON কী এবং চরিত্রগত কী?" — মানকা টেক্সট ফরম্যাট, JavaScript-only নয়, human-readable, নেস্টেড — এবং parse/stringify-এর ব্যবহার।