CSV to JSON রূপান্তর কী?
CSV (Comma-Separated Values, RFC 4180) হলো একটি সমতল, ট্যাবুলার টেক্সট ফরম্যাট; JSON (JavaScript Object Notation, RFC 8259) হলো কাঠামোগত ডেটার জন্য একটি ট্রি-আকৃতির টেক্সট ফরম্যাট। CSV থেকে JSON রূপান্তর করলে স্প্রেডশিট-বান্ধব তালিকা API-বান্ধব অবজেক্টের অ্যারেতে পরিণত হয় — প্রতিটি সারির জন্য একটি অবজেক্ট, হেডার সারি কী সরবরাহ করে — একটি সেলও পুনরায় টাইপ না করে।
CSV to JSON রূপান্তর কীভাবে কাজ করে?
প্রতিটি রূপান্তর আপনার ব্রাউজারে স্থানীয়ভাবে চলে। উচ্চ-স্তরের ধাপগুলো হলো:
- আপনি ইনপুট প্যানে CSV পেস্ট করেন এবং CONVERT চাপেন; টুলটি টেক্সট পার্স করে এবং আউটপুট প্যানে JSON অবজেক্টের অ্যারে পাঠায়।
- একটি ক্যারেক্টার-বাই-ক্যারেক্টার স্টেট মেশিন (FIELD_START → IN_UNQUOTED_FIELD বা IN_QUOTED_FIELD) ইনপুট স্ক্যান করে,
""উদ্ধৃত-কোট এস্কেপ মেনে চলে,\r\nও\nউভয় সারি টার্মিনেটর চেনে, এবং মধ্যবর্তী উপস্থাপনা হিসেবে স্ট্রিংয়ের ২-D অ্যারে তৈরি করে। - প্রথম সারি হেডার হলে এর কোষগুলো অবজেক্ট কী হয়ে যায়; অন্যথায় টুল সিন্থেটিক
field0,field1, … কী তৈরি করে যাতে প্রতিটি সারি একটি সম্পূর্ণ অবজেক্টে পরিণত হয়। - ডিলিমিটার (কমা, সেমিকোলন, ট্যাব, পাইপ বা অটো-ডিটেক্ট) এবং টাইপ কোয়ার্শন (সংখ্যা / বুলিয়ান /
null) কনফিগারযোগ্য। কোয়ার্শন চালু থাকলে30সংখ্যা ৩০ হয় এবংtrueবুলিয়ান হয়; বন্ধ থাকলে প্রতিটি কোষ স্ট্রিং থাকে। - আউটপুট রিড-অনলি textarea-তে
JSON.stringify-ফরম্যাটেড টেক্সট হিসেবে লেখা হয়, এবং ডাউনলোড লিঙ্কapplication/json;charset=utf-8MIME টাইপ সহ একটিBlobতৈরি করে যাতে একটি ক্লিকে ফলাফল সংরক্ষণ করা যায়।
এই টুল দিয়ে CSV থেকে JSON কেন রূপান্তর করবেন?
- গোপনীয়তা: প্রতিটি পার্স ও ট্রান্সফর্ম পাস আপনার ব্রাউজারে হয়। ডেটা কখনও আমাদের সার্ভারে পৌঁছায় না।
- সঠিকতা: CSV পার্সার একটি প্রকৃত স্টেট মেশিন। উদ্ধৃত কমা (
"Bob, Jr."), এমবেডেড নিউলাইন ও এস্কেপড কোট সহ ফিল্ড একটি সেলে পার্স হয়, তিনটি নয় — নাইভsplit(',')এটি ভুল করে। - টাইপ বিশ্বস্ততা: ঐচ্ছিক কোয়ার্শন সংখ্যাগত ও বুলিয়ান কোষগুলোকে প্রকৃত JSON সংখ্যা ও বুলিয়ানে রূপান্তর করে, তাই আপনি যে অ্যারে পান তা দ্বিতীয় ক্লিনআপ পাস ছাড়াই সরাসরি ব্যবহারের জন্য তৈরি।
- নমনীয়তা: নন-কমা CSV ডায়ালেক্টের জন্য যেকোনো ডিলিমিটার বেছে নিন, প্রথম সারি হেডার কিনা তা নির্বাচন করুন, এবং যখন প্রতিটি কোষ স্ট্রিং থাকা প্রয়োজন তখন টাইপ কোয়ার্শন বন্ধ করুন।
CSV to JSON রূপান্তরের সাধারণ ব্যবহার কী কী?
CSV কে JSON-এ পার্স করা ডেটা কাজ ও টুলিং জুড়ে দেখা যায়:
- API মকিং: স্প্রেডশিট থেকে এক্সপোর্ট করা CSV ফিক্সচার পেস্ট করে JSON অ্যারেতে রূপান্তর করা যা আপনার লোকাল সার্ভার একটি মকড এন্ডপয়েন্ট হিসেবে ফেরত দিতে পারে।
- ডেটা ইমপোর্ট: স্প্রেডশিট এক্সপোর্ট (পরিচিতি, ইনভেন্টরি, সমীক্ষার প্রতিক্রিয়া) কে JSON অ্যারেতে রূপান্তর করা যা আপনার অ্যাপ্লিকেশন বা স্ক্রিপ্ট CSV পার্সার নির্ভরতা ছাড়াই পুনরাবৃত্তি করতে পারে।
- কনফিগ সম্পাদনা: অ-প্রযুক্তিগত পর্যালোচকদের স্প্রেডশিটে সেল-বাই-সেল সেটিংস বা ফিচার ফ্ল্যাগ সম্পাদনা করতে দেওয়া, তারপর সংরক্ষিত CSV কে JSON-এ রূপান্তর করা যা আপনার অ্যাপ আসলে লোড করে।
CSV to JSON উদাহরণ কেমন দেখায়?
প্রথম লাইনে name,age, দ্বিতীয়তে Alice,30, এবং তৃতীয়তে "Bob, Jr.",25 পেস্ট করে, তারপর কমা ডিলিমিটার, প্রথম সারি কী হিসেবে এবং টাইপ কোয়ার্শন চালু রেখে CONVERT চাপলে [{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] তৈরি হয় — "Bob, Jr."-এর উদ্ধৃত কমা একটি ফিল্ডে থাকে এবং বয়সগুলো প্রকৃত JSON সংখ্যা হয়।
এই CSV to JSON কনভার্টার কি সম্পূর্ণ আমার ব্রাউজারে চলে?
হ্যাঁ। প্রতিটি পার্স ও ট্রান্সফর্ম পাস আপনার ব্রাউজার ট্যাবের ভেতরে JavaScript হিসেবে স্থানীয়ভাবে চলে। টুলটি একেবারেই fetch, XMLHttpRequest বা navigator.sendBeacon কল করে না — আপনার CSV পেলোড কখনও আমাদের সার্ভার, তৃতীয় পক্ষের কনভার্টার বা কোনো অ্যানালিটিক্স পাইপলাইনে পৌঁছায় না। পেজ লোড হওয়ার পরে টুলটি অফলাইনেও কাজ করে, কারণ এটি রানটাইম API নির্ভরতাহীন একটি স্ট্যাটিক HTML/CSS/JS বান্ডল।
এই কনভার্টার সর্বোচ্চ কত ইনপুট আকার সামলাতে পারে?
কনভার্টার পুরো ইনপুট মেমরিতে বাফার করে এবং মূল থ্রেডে সিঙ্ক্রোনাসলি চলে, তাই ব্যবহারিক সীমা আপনার ডিভাইসের উপর নির্ভর করে। আধুনিক ল্যাপটপে প্রায় ১০ MB CSV (প্রায় ১,০০,০০০ সাধারণ সারি) পর্যন্ত ইনপুট লক্ষণীয় বিরতি ছাড়াই রূপান্তর হয়। অতিরিক্ত বড় ডেটাসেটের জন্য পেস্ট করার আগে বিভক্ত করুন।
CSV to JSON পার্সার কীভাবে উদ্ধৃত কমা ও এমবেডেড নিউলাইন পরিচালনা করে?
পার্সার তিনটি স্টেট সহ একটি ক্যারেক্টার-বাই-ক্যারেক্টার স্টেট মেশিন (FIELD_START, IN_UNQUOTED_FIELD, IN_QUOTED_FIELD) — নাইভ split(',') নয়। ডাবল কোটে মোড়া ফিল্ডে ডিলিমিটার, CR, LF বা "" হিসেবে এস্কেপড লিটারেল ডাবল কোট থাকতে পারে ফিল্ড সীমানা না ভেঙে। তাই "Bob, Jr.",25 তিনটি নয় দুটি ফিল্ডে পার্স হয়, এবং উদ্ধৃত বহু-সারির বিবরণ একটি সেলে পার্স হয়।
JSON আউটপুটে সংখ্যা, বুলিয়ান ও খালি সেল কীভাবে টাইপ করা হয়?
টাইপিং টাইপ কোয়ার্শন টগল দ্বারা নিয়ন্ত্রিত হয়। কোয়ার্শন চালু (ডিফল্ট) থাকলে সংখ্যার মতো দেখতে সেল JSON সংখ্যা হয়, true/false বুলিয়ান হয়, এবং আক্ষরিক null JSON null হয়; বাকি সব স্ট্রিং থাকে। কোয়ার্শন বন্ধ থাকলে সামগ্রী যাই হোক প্রতিটি মান স্ট্রিং থাকে — লিডিং জিরো, ফোন নম্বর বা ID কোড অক্ষত রাখতে উপযোগী। ছোট সারির ট্রেলিং খালি সেল খালি স্ট্রিং হিসেবে পাঠানো হয় যাতে প্রতিটি অবজেক্টে পূর্ণ কী-সেট থাকে।
CSV সাইড কোন ডিলিমিটার সমর্থন করে?
চারটি স্পষ্ট ডিলিমিটার সমর্থিত: কমা (,, RFC 4180 ডিফল্ট), সেমিকোলন (;, ইউরোপীয় লোকেলে সাধারণ), ট্যাব (\t, TSV ডায়ালেক্ট), এবং পাইপ (|)। আপনি অটো-ডিটেক্টও বেছে নিতে পারেন, যা উদ্ধৃত অঞ্চলের বাইরে ইনপুটের প্রথম ৪ KB-তে প্রতিটি প্রার্থীর ঘটনা গণনা করে এবং প্রথম পাঁচটি সারিতে সামঞ্জস্যপূর্ণ কলাম গণনা দেয় এমন সবচেয়ে ঘন ঘন ঘটা ডিলিমিটারটি বেছে নেয়।
এই CSV to JSON কনভার্টার একটি প্রকৃত স্টেট মেশিন দিয়ে পার্স করে এবং পরিষ্কার, ব্যবহার-প্রস্তুত JSON তৈরি করে যা আপনি সরাসরি একটি API কল, একটি স্ক্রিপ্ট বা একটি কোড রিভিউতে পেস্ট করতে পারেন — একটি বাইটও আপলোড না করে।