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

জাভাস্ক্রিপ্টে JSON কীভাবে জাভাস্ক্রিপ্ট অবজেক্টে ডিসিরিয়ালাইজ করবেন?

JSON.parse(): JSON স্ট্রিং থেকে জাভাস্ক্রিপ্ট অবজেক্ট

JSON (JavaScript Object Notation) আসলে জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন। ব্রাউজার এবং Node.js-এ বিল্ট-ইন JSON অবজেক্ট থাকে যা পার্সিং এবং স্ট্রিংজিফিকেশন করে।

বেসিক সিনট্যাক্স

const obj = JSON.parse(jsonString[, reviver]);
  • jsonString: বৈধ JSON স্ট্রিং।
  • reviver (ঐচ্ছিক): ফাংশন যা প্রতিটি কী-ভ্যালু পেয়ারকে ট্রান্সফর্ম করতে পারে।

সاده উদাহরণ

const json = '{"result":true, "count":42}';
const obj = JSON.parse(json);

console.log(obj.count);  // 42
console.log(obj.result); // true
console.log(typeof obj); // 'object'

Reviver ফাংশন ব্যবহার (উন্নত)

পার্সিংয়ের সময় ডেটা ট্রান্সফর্ম করতে (যেমন ডেট স্ট্রিং থেকে Date অবজেক্ট):

const json = '{"date":"2024-01-15T10:30:00Z", "value": 100}';
const obj = JSON.parse(json, (key, value) => {
  if (key === 'date') return new Date(value);
  return value;
});

console.log(obj.date instanceof Date); // true
console.log(obj.date.getFullYear());   // 2024

সাধারণ ত্রুটি এবং সমাধান

ত্রুটিকারণসমাধান
SyntaxError: Unexpected tokenঅবৈধ JSON (সিঙ্গেল কোট, ট্রেইলিং কমা, কমেন্ট)বৈধ JSON নিশ্চিত করুন: ডবল কোট, কোনো কমেন্ট/ট্রেইলিং কমা নয়
SyntaxError: JSON.parse: bad control characterস্ট্রিং-এ কন্ট্রোল ক্যারেক্টার (নিউলাইন, ট্যাব) এসকেপ নেইসার্ভার থেকে সঠিক JSON এনকোড নিশ্চিত করুন
পার্স সফল কিন্তু ডেটা আসছে নারুট লেভেলে অ্যারে বা প্রিমিটিভJSON.parse যেকোনো বৈধ JSON ভ্যালু পার্স করে (অবজেক্ট, অ্যারে, স্ট্রিং, নম্বর)

বিপরীত কাজ: অবজেক্ট থেকে JSON স্ট্রিং

const obj = {name: 'Rahim', age: 25};
const json = JSON.stringify(obj);
// '{"name":"Rahim","age":25}'

// ফরম্যাটিংসহ (ইনডেন্ট ২ স্পেস)
const pretty = JSON.stringify(obj, null, 2);

সিকিউরিটি সতর্কতা

  • অবিশ্বস্ত সোর্স থেকে JSON পার্স করলে XSS হুমলার ঝুঁকি থাকে (যদি eval ব্যবহার করা হয়, কিন্তু JSON.parse নিরাপদ)।
  • JSON.parse কোনো কোড এক্সিকিউট করে না, শুধু ডেটা পার্স করে।

Node.js-এ বড় ফাইল পার্স করা

বড় JSON ফাইলের জন্য স্ট্রিম পার্সার (যেমন JSONStream, stream-json) ব্যবহার করুন মেমরি বাঁচাতে।

  1. জাভাস্ক্রিপ্টে JSON টেক্সটকে JSON অবজেক্টে কনভার্ট করার পদ্ধতি

  2. জাভাস্ক্রিপ্টে JSON অবজেক্ট তৈরির পদ্ধতি? উদাহরণসহ ব্যাখ্যা

  3. স্ট্রিংকে জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করা

  4. জাভাস্ক্রিপ্টে ইম্পোর্ট করা অবজেক্ট ডিস্ট্রাকচার করা