JSON, JavaScript Object Notation, সংগঠিত ডেটা উপস্থাপন করার একটি টেক্সট ফরম্যাট: অবজেক্ট, লিস্ট, স্ট্রিং, নম্বর, বুলিয়ান এবং একটি null মান, যা এত ছোট সিনট্যাক্সে লেখা যা এক বিকেলে পড়া যায় এবং এত কঠোর যে প্রতিটি ভাষা একে একই ভাবে পার্স করতে পারে। নাম সত্ত্বেও এটি JavaScript এর সাথে বাধ্য নয়। প্রতিটি প্রধান ভাষা তার স্ট্যান্ডার্ড লাইব্রেরিতে একটি JSON পার্সার বহন করে বা এক লাইনে ইনস্টল হয়, যা এটি জিতার প্রকৃত কারণ: এটি সুন্দর তাই নয়, বরং এটি বোরিং এবং পোর্টেবল।
এটি কেমন দেখায়
{
"নাম": "Ada Lovelace",
"বয়স": 36,
"চাকুরিতে": true,
"দক্ষতা": ["গণিত", "লেখা"],
"ঠিকানা": { "শহর": "লন্ডন", "দেশ": "UK" },
"ডাকনাম": null
}
একটি অবজেক্ট হল { } যাতে কী-ভ্যালু পেয়ার থাকে, একটি অ্যারে হল [ ]
যাতে একটি সাজানো তালিকা থাকে, এবং বাকি সব এই দুটি কনটেইনারের ভিতরে
নেস্ট হয়। এটিই JSON এর পুরো আকৃতি: দুটি কনটেইনার টাইপ এবং সেগুলির
ভিতরে কয়েকটি মানের টাইপ।
ছটি মানের টাইপ, ন বেশি ন কম
একটি JSON মান হল একটি স্ট্রিং, একটি নম্বর, একটি বুলিয়ান (true বা false),
null, একটি অ্যারে, বা একটি অবজেক্ট। স্পেসিফিকেশনে এর বাইরে আর কিছু নেই।
কোনো তারিখের টাইপ নেই, undefined নেই, কমেন্ট সিনট্যাক্স নেই, এবং কোনো
ফাংশন উপস্থাপন করার কোনো উপায় নেই। একটি তারিখ একটি স্ট্রিং হয়ে যায়
দুই পক্ষের সম্মত ফরম্যাটে (সাধারণত ISO 8601), এবং JavaScript এ undefined
হবে এমন মান অবজেক্ট থেকে সরিয়ে নেওয়া হয় লেখার পরিবর্তে। JSON ডেটা
টাইপ ব্যাখ্যা ছয়টির প্রতিটি আরও বিস্তারিতভাবে
কভার করে, যার মধ্যে সেই এজ কেস রয়েছে যা একটি সরল পার্সারকে বিভ্রান্ত
করে।
কেন এটি বেশিরভাগ API তে XML কে প্রতিস্থাপন করেছে
XML প্রতিটি মানকে ওপেনিং এবং ক্লোজিং ট্যাগে জড়িয়ে ফেলে, তার উপরে অ্যাট্রিবিউটও সাপোর্ট করে, এবং কী বৈধ তা বর্ণনা করতে আলাদা একটি স্কিমা ভাষা প্রয়োজন। JSON এর কনটেইনার প্রতিটি দুটি ক্যারেক্টার, মানগুলি কোনো ট্যাগ ছাড়াই টাইপ করা, এবং ডকুমেন্টের আকৃতি সেই ডেটা স্ট্রাকচারের আকৃতিকে প্রতিফলিত করে যা একটি প্রোগ্রাম প্রকৃতপক্ষে ব্যবহার করে; একটি JSON ডকুমেন্টকে একটি ভাষার নেটিভ অবজেক্ট লিটারালে পার্স করা প্রায় সরাসরি কপি, যেখানে একটি XML ডকুমেন্টের সাধারণত তার নিজের অবজেক্ট মডেল তার উপর অনুবাদ করতে হয়। এটি পেলোড সাইজ এবং পার্সিং খরচে একটি প্রকৃত, পরিমাপযোগ্য পার্থক্য, তাই REST APIs একবার JSON বিদ্যমান হলে তাতে স্থিতিশীল হয়েছে। JSON vs XML দেখুন আরও ঘনিষ্ঠ, নির্দিষ্ট তুলনার জন্য।
আপনি এটি প্রকৃতপক্ষে কোথায় দেখবেন
- REST API রেসপন্স এবং রিকোয়েস্ট।
Content-Type: application/jsonবডির জন্য আধিপত্য ফরম্যাট, উভয় দিকে। - কনফিগ ফাইল।
package.json,tsconfig.json, এবং বেশিরভাগ আধুনিক টূল কনফিগ, যদিও YAML এখানেও সাধারণ; দেখুন JSON vs YAML কখন কোনটি ভালো। - NoSQL এবং ডকুমেন্ট ডাটাবেস। MongoDB ডকুমেন্ট BSON হিসাবে সংরক্ষিত হয়, JSON এর একটি বাইনারি সুপারসেট, এবং বেশিরভাগ ডকুমেন্ট ডাটাবেস JSON সরাসরি গ্রহণ করে এবং ফেরত দেয়।
- লগ লাইন এবং ডেটা পাইপলাইন, প্রতি লাইনে একটি JSON অবজেক্ট, একটি ফরম্যাট যাকে সাধারণত NDJSON বলা হয়। সাধারণ JSON ব্যবহারের ক্ষেত্র এটি এবং অন্যদের প্রকৃত আকৃতি দিয়ে কভার করে।
- ব্রাউজার স্টোরেজ।
localStorageশুধুমাত্র স্ট্রিং সংরক্ষণ করে, তাই যেকোনো স্ট্রাকচার্ড জিনিস ভিতরে যাওয়ার সময়JSON.stringifyএবং বের হওয়ার সময়JSON.parseহয়।
এর সাথে কাজ করা
একটি ডকুমেন্ট JSON ফরম্যাটার এ পেস্ট করুন ফরম্যাট করতে, বা JSON ভ্যালিডেটর এ স্পেসিফিকেশনের বিরুদ্ধে যাচাই করতে, যে ক্যারেক্টার ভেঙেছে তার ঠিক লাইন এবং কলাম সহ। কোনোটিই আপনি যা পেস্ট করেন তা আপলোড করে না; দুটোই আপনার ব্রাউজারে সম্পূর্ণরূপে চলে। একবার বেসিক বোঝা গেলে, JSON চিট শিট উপরের সিনট্যাক্স নিয়মের জন্য এক পৃষ্ঠার রেফারেন্স, ট্যাবে খোলা রাখা বা অফলাইন রেফারেন্সের জন্য ডাউনলোড করার যোগ্য।