JSON থেকে CSV কনভার্টার
বাম দিকে অবজেক্টের JSON অ্যারে পেস্ট করুন, ডান দিকে সঠিকভাবে উদ্ধৃত CSV পান। হেডার অবজেক্ট কী থেকে তৈরি হয়। কোনো আপলোড নেই।
- বাম টেক্সট এরিয়ায় অবজেক্টের JSON অ্যারে পেস্ট করুন।
- "CSV-এ রূপান্তর" ক্লিক করুন। হেডার সারি সব অবজেক্টের কীর ইউনিয়ন থেকে তৈরি হয়।
- ফলাফল কপি করুন বা data.csv হিসাবে ডাউনলোড করুন।
- নেস্টেড মানের ক্ষেত্রে ফিল্ডটি 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 চালান।