কম্পিউটার টিউটোরিয়াল

JSON কী?

JSON হলো JavaScript Object Notation-এর সংক্ষিপ্ত রূপ। এটি একটি জাভাস্ক্রিপ্ট অবজেক্ট যা ডেটাকে key/value pair-এ অর্গানাইজ করে। এইভাবে ডেটা স্টোর করলে এই অবজেক্টগুলো লাইটওয়েট এবং ল্যাঙ্গুয়েজ-ইনডিপেন্ডেন্ট হয়। অর্থাৎ JSON অধিকাংশ প্রোগ্রামিং ল্যাঙ্গুয়েজ পড়তে পারে।

JSON সাধারণত সার্ভার থেকে ক্লায়েন্ট সাইডে ডেটা রিট্রিভ করতে ব্যবহৃত হয় কারণ এটি লাইটওয়েট এবং মানুষ ও মেশিন দুটোই সহজে পড়তে পারে। API কনজিউম করার এই যুগে, JSON সার্ভার থেকে শুধু বাঞ্ছিত ডেটা এক্সট্রাক্ট করে ইউজারকে দেওয়ার জন্য পর্যাপ্ত ফ্লেক্সিবল।

JSON ব্যবহার করা

JSON ব্যবহার করা একটি অ্যাপের ফ্রন্ট এন্ডে সার্ভার থেকে পাস করা ডেটা স্টোর করার একটি হ্যান্ডি উপায়। অধিকাংশ প্রোগ্রামিং ল্যাঙ্গুয়েজে ডেটাকে JSON-এ রূপান্তর করার মেথড আউট অফ দ্য বক্স থাকে। একটি জাভাস্ক্রিপ্ট fetch রিকোয়েস্টে, সার্ভার থেকে পাস করা ডেটা রেসপন্স json() মেথডটি রিকোয়েস্টে ইনভোক করে JSON-এ রূপান্তর করা হয়। Fetch রিকোয়েস্ট সম্পর্কে আরও জানতে এখানে ক্লিক করুন।

আমরা কেন একটি রেসপন্সকে JSON-এ রূপান্তর করতে চাই? একটি রেসপন্স ভার্বোজ এবং মানুষের জন্য ডিসিফার (decipher) করা কঠিন। রেসপন্সকে JSON-এ রূপান্তর করলে, আমরা ডেটাকে পাঠযোগ্য key/value pair-এ অর্গানাইজ করি। এটি ডেটাকে আমাদের লিখা কোডের মাধ্যমে আরও অ্যাক্সেসিবল করে যা রেসপন্স ডেটার সাথে কিছু করতে চায়।

JSON উদাহরণ

প্রথমে, দেখি একটি রেসপন্স JSON-এ রূপান্তর হলে কী দেখতে পারে। নিচের উদাহরণে, আমরা একটি API-এ ফেচ রিকোয়েস্ট পাঠাচ্ছি যা বলে বর্তমানে কতজন astronaut अन्तরishda আছে।

fetch('https://api.open-notify.org/astros.json')
  .then(response => response.json())
  .then(data => console.log(data))

আমাদের উদ্দেশ্যে, আমরা JSON-এ রূপান্তর করা রেসপন্সটি কনসোলে লগ করব।

{
  "message": "success",
  "number": 7,
  "people": [
    { "craft": "ISS", "name": "Sergey Ryzhikov" },
    { "craft": "ISS", "name": "Kate Rubins" },
    { "craft": "ISS", "name": "Sergey Kud-Sverchkov" },
    { "craft": "ISS", "name": "Mike Hopkins" },
    { "craft": "ISS", "name": "Victor Glover" },
    { "craft": "ISS", "name": "Shannon Walker" },
    { "craft": "ISS", "name": "Soichi Noguchi" }
  ]
}

আমরা দেখতে পাচ্ছি এই অবজেক্টের ভিতরে "message", "number", এবং "people" কীগুলো আছে। message key একটি "success" ভ্যালুতে পয়েন্ট করছে। এটি আমাদের রিকোয়েস্টের স্টেটাস জানানো একটি সুন্দর মেসেজ।

এরপর, number key ৭ ভ্যালুতে পয়েন্ট করছে। এটি अन्तরিক্ষে মোট কতজন মানুষ আছে সেটা। শেষে, আমাদের "people" key-এ পৌঁছেছি। এই key-এর ভ্যালু একটি অ্যারে। এই অ্যারেতে আরও অবজেক্ট আছে "craft" এবং "name" কীসহ। এই কীগুলোর ভ্যালুগুলো হলো স্পেসক্র্যাফটের নাম এবং সवार astronaut-এর নাম।

JSON অনেক বার নেস্টেড (nested) হতে পারে। আমাদের fetch রিকোয়েস্টের এই পর্যায়ে, রেসপন্স JSON-এ রূপান্তর হয়েছে এবং এরপর সেটা সেই ডেটার সাথে কিছু করার পরবর্তী ধাপ। এখান থেকে, আমরা এই ডেটা ব্যবহার করতে পারি প্রতিটি astronaut-এর জন্য একটি কার্ডের সারি পপুলেট করার জন্য। ডেটার সাথে কী করা হবে সেটা নির্ভর করে আপনি আপনার অ্যাপে কী অর্জন করতে চান।

উপসংহার

রিক্যাপ করলে, আমরা শিখেছি যে JSON হলো একটি অবজেক্ট যা ডেটা স্টোর করতে ব্যবহৃত হয়। সাধারণত, সেই ডেটা একটি সার্ভার থেকে আয়ে একটি fetch রিকোয়েস্টের রেসপন্স হিসেবে। আমরা শিখেছি যে জাভাস্ক্রিপ্টে একটি json() মেথড থাকে যা একটি রেসপন্সকে JSON-এ রূপান্তর করবে।

কোনো অ্যাপ্লিকেশনের ফ্রন্ট এন্ড সার্ভার থেকে ডেটা ব্যবহার করতে পারবে যদি সেটি JSON ফরম্যাটে থাকে। একটি রেসপন্সকে JSON-এ রূপান্তর করার পর, আমরা সেটা 중심으로 যেকোনো কিছু বিল্ড করতে আজাদ। json() মেথড fetch রিকোয়েস্টে আরও গভীরে যেতে এই গাইড রেফার করুন।

  1. ডেটা সেন্টার কী?

  2. OLAP কী?

  3. STREAM অ্যালগরিদম কী? ডেটা স্ট্রিমে k-মেডিয়ান ক্লাস্টারিং

  4. সিরিয়ালাইজেশন বোঝা: সফটওয়্যার ডেভেলপারদের জন্য একটি প্রফেশনাল গাইড