CSV ⇄ JSON
যেকোনো একটি ফরম্যাট পেস্ট করুন — টাইপ করার সঙ্গে সঙ্গে অন্যটি দেখা যায়, দুই দিকেই।
কীভাবে ব্যবহার করবেন
- বাক্সে CSV (বা TSV / সেমিকোলন-বিভক্ত টেক্সট) বা একটি JSON অ্যারে পেস্ট করুন — টাইপ করার সঙ্গে সঙ্গে ফলাফল আঁকা হয়, চাপার কোনো বোতাম নেই। দিকটি প্রথম অক্ষর থেকে শনাক্ত হয়ে ফলাফলের উপরে দেখানো হয়, তাই যাচাই করতে পারেন।
- দিক ভুল অনুমান হলে CSV → JSON বা JSON → CSV বাছুন। সবকিছু একটি কলামে পড়লে বিভাজক "অটো" থেকে আপনার অক্ষরে নামান। ফাইল ডেটা দিয়ে শুরু হলে "প্রথম সারি হেডার" বন্ধ করুন — তখন অবজেক্টের বদলে অ্যারেগুলোর অ্যারে পাবেন।
- ফলাফল কপি বা ডাউনলোড করুন। দুটোই স্ক্রিনে দেখা ঠিক টেক্সট ব্যবহার করে; ফাইলের নাম data.json বা data.csv। "নমুনা লোড করুন" চালু দিকের জন্য একটি উদাহরণ ভরে দেয়।
উদাহরণ
ইনপুট (CSV)
order_id,customer,note,zip,amount,shipped 1001,"রহমান, সাদিয়া",রিফান্ড চেয়েছেন,00501,89.90,true 1002,তানভীর হোসেন,,10001,42.00,false
আউটপুট (JSON)
[ { "order_id": 1001, "customer": "রহমান, সাদিয়া", "note": "রিফান্ড চেয়েছেন", "zip": "00501", "amount": 89.9, "shipped": true }, { "order_id": 1002, "customer": "তানভীর হোসেন", "note": "", "zip": 10001, "amount": 42, "shipped": false } ]
ওই আউটপুটে চারটি জিনিস দেখুন: "রহমান, সাদিয়া"-র ভেতরের কমা সারি ভাগ না করে মানের ভেতরেই থেকেছে; 00501 তার শুরুর শূন্য ধরে রেখেছে, নইলে 501 হয়ে যেত; 10001 সত্যিই সংখ্যা হয়েছে, তাই zip কলামে মিশ্র টাইপ হয় — প্রতিটি মান স্ট্রিং রাখতে "সংখ্যা ও বুলিয়ান শনাক্ত করুন" বন্ধ করুন; আর 89.90 এসেছে 89.9 হিসেবে, কারণ JSON সংখ্যা শেষের শূন্য বহন করতে পারে না।
নিয়ম, সীমাবদ্ধতা ও পরিচিত সমস্যা
- ফাইল আপলোড, ড্র্যাগ-অ্যান্ড-ড্রপ বা URL থেকে আনা নেই: টেক্সট পেস্ট করুন। ড্রপ জোন ফলাফলের দরকারি উচ্চতা খেয়ে ফেলত, আর ফাইল ঠিকভাবে পড়তে অ-UTF-8 এনকোডিং সামলাতে হয় — CSV ভিউয়ার তা আগেই করে (GB18030, Big5, Windows-1256), তাই সেখানে ফাইল খুলে টেক্সট কপি করুন।
- ইনপুট 1,000,000 অক্ষরে সীমিত; 200,000-এর বেশি হলে ফলাফল আপনার টাইপিং থামা পর্যন্ত অপেক্ষা করে এবং তা জানায়। কঠিন সীমার উপরে গেলে স্পষ্ট ত্রুটি পান — ইনপুট কখনো নীরবে কাটা হয় না।
- টাইপ শনাক্তকরণ প্রতিটি সেলের জন্য এবং রক্ষণশীল: শুধু true / false / null (শুধু ছোট হাতের) আর কঠোর JSON সংখ্যা রূপান্তরিত হয়। শুরুর শূন্যযুক্ত পূর্ণসংখ্যা (00501) ও 16 বা তার বেশি অঙ্কের সংখ্যা (দীর্ঘ আইডি) সবসময় স্ট্রিং থাকে, আর খালি সেল null না হয়ে "" থাকে।
- JSON সংখ্যা শেষের শূন্য রাখতে পারে না, তাই 89.90 হয় 89.9 এবং 42.00 হয় 42। প্রতিটি মান ঠিক যেমন লেখা তেমন রাখতে "সংখ্যা ও বুলিয়ান শনাক্ত করুন" বন্ধ করুন।
- কলামসংখ্যা সবচেয়ে চওড়া সারির সমান, তাই কোনো ফিল্ড কখনো বাদ পড়ে না: ছোট সারি খালি স্ট্রিং দিয়ে ভরা হয় আর বাড়তি ফিল্ড স্বয়ংক্রিয় নাম পায়। প্রথম সারির সঙ্গে না মেলা সারিগুলো নম্বর দিয়ে তালিকাভুক্ত হয়।
- ডুপ্লিকেট কলামের নাম একে অপরকে মুছে না দিয়ে _2, _3 … দিয়ে বদলানো হয় — মুছে দিলে একটি পুরো কলাম নীরবে হারিয়ে যেত। অনুপস্থিত বা খালি হেডার সেল column_N হয়। ওই নামগুলো মেশিন-পাঠযোগ্য এবং প্রতিটি ইন্টারফেস ভাষায় একই।
- JSON → CSV গ্রহণ করে অবজেক্টের অ্যারে (প্রধান ক্ষেত্র), অ্যারেগুলোর অ্যারে (অবস্থানভিত্তিক কলাম), একটি একক অবজেক্ট আর সাধারণ মানের অ্যারে (একটি "value" কলাম)। অন্য কিছু — শীর্ষস্তরের একক মান, বা অবজেক্টের সঙ্গে অন্য মান মেশানো অ্যারে — লাইন ও কলামসহ প্রত্যাখ্যাত হয়, অনুমান করা হয় না।
- নেস্টেড অবজেক্ট ডিফল্টভাবে ডটেড কী-তে (address.city) ফ্ল্যাট হয়; অ্যারে কখনো ফ্ল্যাট হয় না, সেলের ভেতরে কমপ্যাক্ট JSON হিসেবে লেখা হয়। ফ্ল্যাটেনিং বন্ধ করলে নেস্টেড অবজেক্টও JSON হিসেবে থাকে। null হয় খালি সেল।
- JSON কঠোরভাবে পার্স হয়: কমেন্ট নেই, বাড়তি কমা নেই, একক কোট নেই, এস্কেপ না করা কন্ট্রোল অক্ষর নেই, নেস্টিং সর্বোচ্চ 64 স্তর। প্রতি লাইনে একটি অবজেক্ট (JSON Lines) গ্রহণ করা হয় না — আগে অবজেক্টগুলো একটি অ্যারেতে মুড়ে দিন।
- CSV হলো নরম পক্ষ: বন্ধ না হওয়া কোট টেক্সটের শেষ পর্যন্ত গুটিয়ে নেওয়া হয় এবং তার সারি নাম দেওয়া হয়, খালি লাইন বাদ দেওয়া ও গণনা করা হয়, আর ভুল ফিল্ডসংখ্যার সারি তালিকাভুক্ত হয়। কঠিন ত্রুটি শুধু JSON পক্ষেই হয়।
- আউটপুট CSV CRLF লাইন এন্ডিং ও বাইট-অর্ডার মার্ক ছাড়া লেখা হয়, এবং আপনি যা কপি করেন তার সঙ্গে হুবহু এক। অ-ল্যাটিন CSV ডাবল-ক্লিকে Excel-এ বিকৃত দেখালে Data → From Text/CSV দিয়ে আমদানি করে UTF-8 বাছুন।
- এখানে নেই: .xlsx, আর্কাইভ, একাধিক ফাইল, JSON Lines, YAML/XML/SQL/Excel এক্সপোর্ট, সাজানো, ফিল্টার, কলাম বাছাই ও ডুপ্লিকেট বাদ — CSV ভিউয়ার ও কনফিগ কনভার্টার সেগুলো সামলায়। কিছুই আপলোড, সংরক্ষণ বা URL-এ যায় না।
সম্পর্কিত টুল
ডেটা অন্য ফরম্যাটে চলে গেলে সাধারণত যা দরকার।