← সব টুল

CSV থেকে JSON কনভার্টার

সরাসরি ব্রাউজারে CSV থেকে JSON ও JSON থেকে CSV রূপান্তর করুন। সারি ও হেডার সুন্দরভাবে ম্যাপ করুন, কোটেড ফিল্ড ও ডিলিমিটার সামলান, ডেটা স্থানীয় রাখুন।

CSV এবং JSON: একই ডেটা বহনের দুটি উপায়

বেশিরভাগ টেবুলার ডেটা দুটি ফরম্যাটের একটিতে গিয়ে থাকে। CSV স্প্রেডশিটের নিজস্ব ভাষা: একটি সাধারণ টেক্সট ফাইল যেখানে প্রতিটি লাইন একটি সারি আর কমা কলামগুলো আলাদা করে। JSON হলো API ও অ্যাপের ভাষা: অবজেক্ট (কী ও ভ্যালু জোড়া) এবং অ্যারে (ক্রমবদ্ধ তালিকা) দিয়ে তৈরি একটি কাঠামোগত টেক্সট ফরম্যাট। এগুলো একই তথ্য খুব ভিন্ন আকারে বর্ণনা করে, যে কারণেই এদের মধ্যে রূপান্তর এত ঘন ঘন দরকার হয়। এই পেজটি সেই রূপান্তরটি উভয় দিকেই করে, সম্পূর্ণভাবে আপনার ব্রাউজারের ভেতরে।

CSV সেখানেই জ্বলে ওঠে যেখানে একটি গ্রিড স্বাভাবিক মনে হয়। একটি ডেটাবেস থেকে একটি রিপোর্ট এক্সপোর্ট করুন, অর্ডারের একটি তালিকা ডাউনলোড করুন, বা Excel বা Google Sheets থেকে একটি শিট সংরক্ষণ করুন, আর আপনি প্রায় সবসময় CSV পাবেন। এটি কমপ্যাক্ট, মানুষের পড়ার যোগ্য, এবং পৃথিবীর প্রতিটি অ্যানালিটিক্স টুল এটি খুলতে পারে। JSON সেখানে জ্বলে ওঠে যেখানে সফটওয়্যার সফটওয়্যারের সাথে কথা বলে। REST API এটি পাঠায় ও গ্রহণ করে, কনফিগারেশন ফাইল এটি ব্যবহার করে, এবং JavaScript কোনো পার্সিং লাইব্রেরি ছাড়াই এটি পড়ে। আপনার যখন একটি স্প্রেডশিট এক্সপোর্টকে একটি API-তে খাওয়াতে হয় বা একটি API রেসপন্সকে একটি স্প্রেডশিটে টানতে হয়, তখন আপনি আসলে এই দুই জগতের মধ্যে অনুবাদ করছেন।

একটি গাঢ় ইন্ডিগো পটভূমিতে CSV সারির জ্বলজ্বলে টেবিল নেস্টেড JSON অবজেক্টে রূপান্তরিত হচ্ছে
একটি সমতল CSV টেবিল নেস্টেড JSON অবজেক্ট ও অ্যারেতে ভাঁজ হয়ে যাচ্ছে।

সারি ও হেডার কীভাবে অবজেক্টে পরিণত হয়

ম্যাপিংটি দেখতে যতটা জটিল মনে হয় তার চেয়ে সহজ। একটি CSV ফাইলের প্রথম লাইনটি সাধারণত হেডার সারি, এবং সেই হেডার নামগুলো JSON-এ কী হয়ে যায়। পরবর্তী প্রতিটি সারি একটি অবজেক্ট হয়ে যায়, যেখানে প্রতিটি সেল সংশ্লিষ্ট হেডারের সাথে জোড়া লাগে। পুরো ফাইলটি সেই অবজেক্টগুলোর একটি অ্যারে হয়ে যায়। তাই name,email,age কলামযুক্ত একটি CSV [{"name": "Ada", "email": "ada@example.com", "age": "36"}, ...]-এর মতো একটি তালিকায় পরিণত হয়। উল্টো দিকে, JSON থেকে CSV হেডার লাইন তৈরি করতে প্রথম অবজেক্টের কী পড়ে, তারপর প্রতি অবজেক্টে একটি সারি লেখে। আপনার ডেটা সত্যিকারভাবে টেবুলার হলে এটি একটি পরিষ্কার, পূর্বানুমানযোগ্য রাউন্ড ট্রিপ।

জানার মতো সমস্যাগুলো

CSV দেখতে তুচ্ছ মনে হলেও কিছু ধারালো কোণা লুকিয়ে রাখে। সবচেয়ে বড়টি হলো একটি ফিল্ডের ভেতরে কমা। একটি ঠিকানায় "Berlin, Germany" থাকলে, কমার উপর একটি সরল ভাগ সেই একক ভ্যালুটিকে দুটি কলামে ছিঁড়ে ফেলবে। CSV স্ট্যান্ডার্ড এমন ফিল্ডগুলোকে ডাবল কোট দিয়ে মুড়ে এটি সামলায়, আর কোটেড ফিল্ডের ভেতরের কোটগুলো দ্বিগুণ করা হয় ("")। একটি ভালো কনভার্টার সেই নিয়মগুলো মেনে চলে যাতে আপনার ডেটা নীরবে কলাম পরিবর্তন না করে। ডিলিমিটারও লক্ষ্য রাখুন: অনেক ইউরোপীয় এক্সপোর্ট কমার বদলে সেমিকোলন ব্যবহার করে, কারণ সেখানে কমা ইতিমধ্যে একটি দশমিক বিভাজক। ট্যাব ও পাইপও দেখা যায়।

গভীর পার্থক্যটি হলো টাইপ। CSV-তে ডেটা টাইপের কোনো ধারণাই নেই। সবকিছুই টেক্সট, তাই সংখ্যা 42, বুলিয়ান true, এবং একটি খালি সেল সবই সাধারণ স্ট্রিং-এর মতো দেখায়। JSON, বিপরীতে, সংখ্যা, স্ট্রিং, বুলিয়ান, নাল এবং নেস্টেড কাঠামো আলাদা করে। আপনি যখন CSV-কে JSON-এ রূপান্তর করেন, ভ্যালুগুলো স্ট্রিং হিসেবে আসে যদি না টুলটিকে সংখ্যা ও বুলিয়ান ব্যাখ্যা করতে বলা হয়। JSON-কে CSV-তে রূপান্তর করার বিপরীত সমস্যা আছে: নেস্টেড অবজেক্ট ও অ্যারে একটি সমতল গ্রিডে পরিষ্কারভাবে বসে না, তাই সেগুলো সাধারণত সমতল করা হয় বা একটি সেলে স্ট্রিং হিসেবে রূপান্তরিত হয়। এটি আগে থেকে জানা থাকলে পরে একটি কলাম "ভুল দেখাচ্ছে" কেন তা নিয়ে ধাঁধায় পড়া থেকে বাঁচবেন।

একটি স্প্রেডশিট গ্রিড সায়ান ও গোল্ডে জ্বলজ্বলে JSON ব্র্যাকেটের একটি গাছে রূপান্তরিত হচ্ছে
একটি স্প্রেডশিট গ্রিড JSON ব্র্যাকেটের একটি শাখাপ্রশাখাযুক্ত গাছে রূপান্তরিত হচ্ছে।

একটি বাস্তব রাউন্ড ট্রিপ

এখানে একটি পরিস্থিতি যা প্রায়ই ঘটে। একজন সহকর্মী আপনাকে নতুন ব্যবহারকারীদের একটি স্প্রেডশিট পাঠান এবং একটি অভ্যন্তরীণ API দিয়ে সেগুলো লোড করতে বলেন। API শুধু JSON গ্রহণ করে। আপনি শিটটি CSV-তে এক্সপোর্ট করেন, এখানে পেস্ট করেন, এবং আপনার রিকোয়েস্ট পেলোডে বসানোর জন্য প্রস্তুত অবজেক্টের একটি পরিষ্কার অ্যারে ফিরে পান। পরে, API তৈরি করা রেকর্ডগুলোর একটি JSON তালিকা ফেরত দেয়, আর আপনাকে পর্যালোচনার জন্য সেটি একই সহকর্মীকে ফিরিয়ে দিতে হয়। আপনি JSON পেস্ট করেন, এটি CSV-তে রূপান্তর করেন, আর এটি সরাসরি তাদের স্প্রেডশিটে খুলে যায়। কোনো স্ক্রিপ্ট নেই, কোনো ইনস্টল নেই, শুধু একটি স্বাভাবিক ওয়ার্কফ্লোর মাঝে দুটি দ্রুত অনুবাদ।

শুধু স্থানীয়, নকশা অনুযায়ী

এই সবকিছু আপনার ব্রাউজারে চলে। আপনার CSV ও JSON আপনার নিজের মেশিনে JavaScript দ্বারা পার্স ও রূপান্তরিত হয়, এবং কিছুই সার্ভারে আপলোড হয় না। এটি গুরুত্বপূর্ণ কারণ এক্সপোর্টে প্রায়ই আসল নাম, ইমেইল, অর্ডার বিবরণ, বা অভ্যন্তরীণ শনাক্তকারী থাকে যা আপনার কোনো র‍্যান্ডম রিমোট সার্ভিসে পেস্ট করা উচিত নয়। এখানে ডেটা কখনো পেজ ছেড়ে যায় না। আপনি ফলাফল পরে গুছাতে চাইলে, আমাদের JSON ফরম্যাটার এটি সুন্দরভাবে প্রিন্ট ও যাচাই করবে, আর সম্পর্কিত ফরম্যাটের জন্য আমাদের বাকি ডেটা কনভার্টার ব্রাউজ করতে পারেন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

আমার ডেটা কি কোথাও আপলোড হয়?

না। রূপান্তরটি সম্পূর্ণভাবে আপনার ব্রাউজারে JavaScript ব্যবহার করে চলে, তাই আপনার CSV ও JSON আপনার নিজের ডিভাইসে থাকে এবং কখনো সার্ভারে পাঠানো হয় না।

কনভার্টার কি ফিল্ডের ভেতরের কমা সামলায়?

হ্যাঁ। কমা থাকা ফিল্ডগুলো CSV-তে ডাবল কোট দিয়ে মুড়ানো উচিত, আর পার্সার সেই কোটগুলো মেনে চলে যাতে ভ্যালুটি একটি একক কলামে থাকে।

JSON-এ আমার সংখ্যাগুলো কেন টেক্সট হিসেবে দেখাচ্ছে?

CSV-তে কোনো ডেটা টাইপ নেই, তাই প্রতিটি সেল সাধারণ টেক্সট। ভ্যালুগুলো JSON স্ট্রিং হয়ে যায় যদি না সংখ্যা ও বুলিয়ান পার্সিং প্রয়োগ করা হয়, কারণ উৎস ফাইলে একটি সংখ্যাকে একটি শব্দ থেকে আলাদা করার কোনো উপায় নেই।

CSV-তে রূপান্তর করার সময় নেস্টেড JSON-এর কী হয়?

একটি সমতল গ্রিড নেস্টেড কাঠামো ধরে রাখতে পারে না, তাই নেস্টেড অবজেক্ট ও অ্যারে সাধারণত সমতল করা হয় বা একটি সেলের ভেতরে একটি একক স্ট্রিং ভ্যালু হিসেবে লেখা হয়।

আমি কি কমার বদলে সেমিকোলন বা ট্যাব ব্যবহার করতে পারি?

হ্যাঁ। অনেক এক্সপোর্ট, বিশেষত ইউরোপীয়গুলো, সেমিকোলন বা ট্যাবকে ডিলিমিটার হিসেবে ব্যবহার করে, আর টুলটি স্ট্যান্ডার্ড কমার বদলে সেগুলো পড়তে পারে।

এটি কি উভয় দিকেই রূপান্তর করে?

হ্যাঁ। আপনি CSV-কে JSON-এ এবং JSON-কে আবার CSV-তে পরিণত করতে পারেন, যা স্প্রেডশিট ও API-এর মধ্যে রাউন্ড ট্রিপকে সহজ করে তোলে।