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

বাম দিকে অবজেক্টের JSON অ্যারে পেস্ট করুন, ডান দিকে সঠিকভাবে উদ্ধৃত CSV পান। হেডার অবজেক্ট কী থেকে তৈরি হয়। কোনো আপলোড নেই।

  1. বাম টেক্সট এরিয়ায় অবজেক্টের JSON অ্যারে পেস্ট করুন।
  2. "CSV-এ রূপান্তর" ক্লিক করুন। হেডার সারি সব অবজেক্টের কীর ইউনিয়ন থেকে তৈরি হয়।
  3. ফলাফল কপি করুন বা data.csv হিসাবে ডাউনলোড করুন।
  4. নেস্টেড মানের ক্ষেত্রে ফিল্ডটি JSON-স্ট্রিং হয়ে যায় — সমতল কলাম চাইলে আগেই সমতল করে নিন।
এটি কী করে?

অবজেক্টের একটি JSON অ্যারেকে RFC 4180 CSV-তে রূপান্তর করে। হেডার সারি হল সব অবজেক্টের সমস্ত কীর ইউনিয়ন। যে মানগুলোতে কমা, কোট বা নতুন লাইন থাকে তাতে CSV-উদ্ধৃতি বসে। সংখ্যা এবং বুলিয়ান উদ্ধৃতি ছাড়াই বের হয়; null এবং undefined খালি ফিল্ড হয়। নেস্টেড মান (অবজেক্ট, অ্যারে) একটি একক উদ্ধৃত ফিল্ডে JSON-স্ট্রিং করা হয় — CSV স্থানীয়ভাবে শ্রেণীবিন্যাস উপস্থাপন করতে পারে না।

উদাহরণ

JSON ইনপুট:

[
  {"name":"Ada","age":36,"role":"engineer"},
  {"name":"Grace","age":40,"role":"scientist"}
]

CSV আউটপুট:

name,age,role
Ada,36,engineer
Grace,40,scientist

সাধারণ JSON-থেকে-CSV ফাঁদ

CSV একটি সমতল ফরম্যাট। বেশিরভাগ "অদ্ভুত" আউটপুট আসে এমন JSON আকার থেকে যাদের সমতল উপস্থাপন নেই।

  • টপ-লেভেল অ্যারে নয়। JSON অবজেক্ট `{"a":1,"b":2}` সরাসরি CSV হতে পারে না — এটিকে অ্যারেতে মুড়ে দিন: `[{"a":1,"b":2}]`। CSV-তে একটি হেডার সারি ও একটি ডেটা সারি থাকবে।
  • সারিগুলিতে ভিন্ন কী। প্রথম অবজেক্টে `{a,b}` এবং দ্বিতীয়টিতে `{a,c}` থাকলে হেডার ইউনিয়ন `a,b,c`। যেসব সারিতে কী নেই সেগুলো খালি ফিল্ড দেয়। কঠোর স্কিমা চাইলে আগেই প্রি-প্রসেস করুন।
  • নেস্টেড মান নীরবে সমতল হয়। `{"address":{"city":"NY"}}` এর মতো ফিল্ড একটি CSV কলাম হয় যার মান JSON স্ট্রিং `{"city":"NY"}`। আলাদা `address.city` কলাম পেতে আগে JavaScript-এ সমতল করুন: `{address_city: row.address.city}`।
  • মানে এমবেডেড নিউলাইন। JSON মানে মাল্টি-লাইন স্ট্রিং উদ্ধৃত CSV ফিল্ড হয়ে যায় যার ভেতরে আক্ষরিক `\n` থাকে। বেশিরভাগ স্প্রেডশিট ঠিকঠাক হ্যান্ডেল করে; কিছু পুরোনো টুল করে না।
  • হেডারে বিশেষ অক্ষর। কমা, কোট বা নিউলাইন সম্বলিত JSON কী কাজ করে তবে কিছু CSV কনজিউমার হেডার সারিকে খারাপভাবে পার্স করে। সর্বাধিক সামঞ্জস্য চাইলে রূপান্তরের আগে কী-গুলোকে অ্যালফানিউমেরিক + আন্ডারস্কোরে নাম পরিবর্তন করুন।
  • JSON-এ ট্রেইলিং কমা। `[{"a":1},]` অবৈধ JSON (শেষ এলিমেন্টের পর ট্রেইলিং কমা)। পার্সার CSV ধাপের আগেই এটি প্রত্যাখ্যান করে। বেশিরভাগ JSON ফরম্যাটার এগুলো সরিয়ে দেয় — দরকার হলে আগে `/json-prettifier`-এর মধ্য দিয়ে চালান।
প্রায়শই জিজ্ঞাসিত প্রশ্ন

ট্যাব-সেপারেটেড আউটপুট (TSV) কীভাবে পাব?

এই পেজ কমা-সেপারেটেড CSV দেয়। TSV চাইলে ফলাফলের `,` কে `\t` দিয়ে প্রতিস্থাপন করুন বা কমান্ড লাইনে `delimiter: "\t"` সহ PapaParse চালান — একই লাইব্রেরি।

হেডার সারিতে কী-এর ক্রম কি বজায় থাকে?

হ্যাঁ — হেডার সারি সব অবজেক্ট জুড়ে কী প্রথম যে ক্রমে দেখা যায় সেই ক্রম ব্যবহার করে। বর্ণানুক্রম চাইলে পেস্টের আগে JSON-এ কী সাজিয়ে নিন।

তারিখ কীভাবে হ্যান্ডেল হয়?

JSON-এ নেটিভ Date টাইপ নেই — তারিখ সাধারণত আগে থেকেই ISO 8601 স্ট্রিং হিসাবে সিরিয়ালাইজ করা থাকে। সেগুলো অপরিবর্তিত পাস হয়। JSON.stringify-এর মাধ্যমে Date অবজেক্ট আগেই ISO স্ট্রিং-এ রূপান্তরিত হয়েছে।

JSON → CSV → JSON রাউন্ড-ট্রিপ করতে পারি?

সমতল-অবজেক্টের সমতল অ্যারের জন্য, হ্যাঁ। স্ট্রিং স্ট্রিং থাকে, সংখ্যা সংখ্যা থাকে (PapaParse-এর ডায়নামিক টাইপিং সহ ইম্পোর্টে)। নেস্টেড মান CSV পাশে গঠন হারায় এবং JSON-স্ট্রিং ফিল্ড হিসাবে ফিরে আসে, আবার নেস্টেড অবজেক্ট হিসাবে নয়।

আমার JSON কি আপলোড হয়?

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

কত বড় JSON ফাইল রূপান্তর করতে পারি?

প্রায় 50 MB পর্যন্ত — তারপর ব্রাউজার টেক্সট এরিয়া ধীর মনে হতে শুরু করে। রূপান্তর নিজেই ইনপুট সাইজের সাথে রৈখিকভাবে স্কেল করে; বটলনেক রেন্ডারিং। বড় ফাইলের জন্য কমান্ড লাইনে PapaParse চালান।