CSV ⇄ JSON

যেকোনো একটি ফরম্যাট পেস্ট করুন — টাইপ করার সঙ্গে সঙ্গে অন্যটি দেখা যায়, দুই দিকেই।

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

  1. বাক্সে CSV (বা TSV / সেমিকোলন-বিভক্ত টেক্সট) বা একটি JSON অ্যারে পেস্ট করুন — টাইপ করার সঙ্গে সঙ্গে ফলাফল আঁকা হয়, চাপার কোনো বোতাম নেই। দিকটি প্রথম অক্ষর থেকে শনাক্ত হয়ে ফলাফলের উপরে দেখানো হয়, তাই যাচাই করতে পারেন।
  2. দিক ভুল অনুমান হলে CSV → JSON বা JSON → CSV বাছুন। সবকিছু একটি কলামে পড়লে বিভাজক "অটো" থেকে আপনার অক্ষরে নামান। ফাইল ডেটা দিয়ে শুরু হলে "প্রথম সারি হেডার" বন্ধ করুন — তখন অবজেক্টের বদলে অ্যারেগুলোর অ্যারে পাবেন।
  3. ফলাফল কপি বা ডাউনলোড করুন। দুটোই স্ক্রিনে দেখা ঠিক টেক্সট ব্যবহার করে; ফাইলের নাম 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-এ যায় না।

ডেটা অন্য ফরম্যাটে চলে গেলে সাধারণত যা দরকার।