JSON থেকে CSV

JSON থেকে CSV

অবজেক্টের অ্যারে আকারে JSON লিখুন। টুলটি সেটিকে CSV-তে রূপান্তর করবে, যা সরাসরি এক্সেল বা গুগল শিটে খোলা যায়। আপনার ডেটা শুধু আপনার ব্রাউজারেই থাকে; এটি কোনো সার্ভারে পাঠানো বা সংরক্ষণ করা হয় না।

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

কীভাবে ব্যবহার করবেন

  1. উপরের বাক্সে JSON লিখুন বা পেস্ট করুন। JSON-টি অবশ্যই অবজেক্টের অ্যারে হতে হবে, যেমন [{"name":"রহিম","age":28}]।
  2. CSV তৈরি করুন বোতামে ক্লিক করুন। সঙ্গে সঙ্গে নিচে CSV ফলাফল দেখা যাবে।
  3. ফলাফল কপি করুন বোতামে ক্লিক করে CSV কপি করুন, অথবা CSV ডাউনলোড করুন বোতামে ক্লিক করে ফাইল হিসেবে সংরক্ষণ করুন।
  4. ডাউনলোড করা ফাইলটি এক্সেল বা গুগল শিটে খুলুন। বাংলা লেখা ঠিকভাবে দেখাতে ফাইলে UTF-8 BOM যুক্ত করা হয়েছে।
  5. নতুন ডেটা নিয়ে কাজ করতে চাইলে রিসেট করুন বোতামে ক্লিক করুন।

একটি বাস্তব উদাহরণ

ধরুন, আপনার কাছে তিনজন শিক্ষার্থীর তথ্য JSON আকারে আছে। ইনপুট:

[{"name":"রহিম উদ্দিন","city":"ঢাকা","age":28},{"name":"Karim","city":"Chattogram","age":35},{"name":"সুমি, আক্তার","city":"খুলনা","age":24}]

টুলটি এই আউটপুট দেবে:

name,city,age
রহিম উদ্দিন,ঢাকা,28
Karim,Chattogram,35
"সুমি, আক্তার",খুলনা,24

ফলাফলে দেখা যাবে ৩টি সারি ও ৩টি কলাম। লক্ষ করুন, তৃতীয় সারির নামে কমা আছে বলে পুরো নামটি ডাবল কোটেশনের ভেতরে রাখা হয়েছে — এটাই সঠিক CSV নিয়ম। কমা ছাড়া এই কোটেশন না দিলে এক্সেল নামটিকে দুটি আলাদা কলাম ভেবে ভুল করত। একইভাবে কোনো মানের ভেতরে ডাবল কোটেশন থাকলে সেটিকে দ্বিগুণ করে লেখা হয়, যেমন আলী "বাবু" লেখা হয় "আলী ""বাবু""" আকারে। আর কোনো মানের ভেতরে নতুন লাইন থাকলে সেটিকেও ডাবল কোটেশনের ভেতরে রাখা হয়, যাতে সারি ভেঙে না যায়।

ফলাফল বুঝবেন কীভাবে

ফলাফলের প্রথম সারিটি হলো হেডার, যেখানে সব কলামের নাম থাকে। কলামের নামগুলো আসে JSON অবজেক্টগুলোর কী থেকে। পরের প্রতিটি সারি একটি করে JSON অবজেক্টের মান ধারণ করে। ফলাফলের উপরে সারি ও কলামের সংখ্যা দেখানো হয়, যাতে আপনি নিশ্চিত হতে পারেন সব ডেটা এসেছে কি না। যদি কোনো অবজেক্টে কোনো কী না থাকে, তাহলে সেই ঘরটি খালি রাখা হয় এবং একটি নোটে জানানো হয় কোন কীগুলো ব্যবহার করা হয়েছে। যেমন একটি অবজেক্টে age আছে কিন্তু আরেকটিতে নেই, তাহলে age কলামে সেই সারির ঘর খালি থাকবে। সংখ্যা, true বা false মানগুলো যেমন আছে তেমনই লেখা হয়। কোনো মান null হলে ঘরটি খালি থাকে। আর কোনো মান নিজেই অবজেক্ট বা অ্যারে হলে সেটিকে JSON টেক্সট আকারে লেখা হয়।

সাধারণ ভুল

প্রথম ভুল হলো অ্যারে ছাড়া শুধু একটি অবজেক্ট দেওয়া, যেমন {"name":"রহিম"}। CSV-এর সারি বানাতে অ্যারে দরকার, তাই অবজেক্টটিকে [ ] ব্র্যাকেটের ভেতরে লিখুন। দ্বিতীয় ভুল হলো ভুল JSON লেখা — যেমন শেষ উপাদানের পরে অতিরিক্ত কমা, সিঙ্গেল কোটেশন দিয়ে কী লেখা, অথবা ব্র্যাকেট না মেলানো। JSON-এ কী ও স্ট্রিং মান সবসময় ডাবল কোটেশনে লিখতে হয়। তৃতীয় ভুল হলো খালি অ্যারে [] দেওয়া, যাতে কোনো সারিই তৈরি হয় না। চতুর্থ ভুল হলো সব অবজেক্টে আলাদা আলাদা কী ব্যবহার করা। এতে অনেক ঘর খালি থাকে, তাই সম্ভব হলে সব অবজেক্টে একই কী রাখুন। পঞ্চম ভুল হলো CSV ফলাফলটি সরাসরি নোটপ্যাডে খুলে বাংলা ভেঙে যাওয়া দেখে ঘাবড়ে যাওয়া — এক্সেল বা গুগল শিটে খুললে বাংলা ঠিক দেখাবে।

সতর্কতা

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

FAQ

প্রশ্ন: JSON-টি অ্যারে না হয়ে একটি অবজেক্ট হলে কী করব?
উত্তর: অবজেক্টটিকে স্কয়ার ব্র্যাকেটের ভেতরে লিখুন, যেমন {"name":"রহিম"}-এর বদলে [{"name":"রহিম"}] লিখুন। তাহলেই টুলটি কাজ করবে।

প্রশ্ন: সব অবজেক্টে একই কী না থাকলে কী হবে?
উত্তর: কোনো সমস্যা নেই। টুলটি সব অবজেক্টের কী একসঙ্গে নিয়ে হেডার বানায়, আর যে অবজেক্টে কোনো কী নেই, সেই ঘরটি খালি রাখে। তবে সম্ভব হলে সব অবজেক্টে একই কী রাখাই ভালো।

প্রশ্ন: আমার ডেটা কি সার্ভারে পাঠানো হয়?
উত্তর: না, রূপান্তরটি সম্পূর্ণ আপনার ব্রাউজারেই হয়। আপনার ডেটা এই পেজ ছাড়া কোথাও যায় না এবং সংরক্ষণ করা হয় না।

প্রশ্ন: ডাউনলোড করা CSV এক্সেলে খুললে বাংলা ভেঙে যায় কেন?
উত্তর: এক্সেলের পুরোনো সংস্করণে CSV খোলার সময় এনকোডিং UTF-8 বেছে নিতে হয়। এই টুলের ডাউনলোড করা ফাইলে UTF-8 BOM যুক্ত থাকে, তাই সাধারণত বাংলা ঠিক দেখায়। তবু সমস্যা হলে গুগল শিটে ফাইলটি আপলোড করে খুলুন।