JSON থেকে CSV রূপান্তর কী?
JSON (JavaScript Object Notation, RFC 8259) হলো কাঠামোগত ডেটার জন্য একটি ট্রি-আকৃতির টেক্সট ফরম্যাট; CSV (Comma-Separated Values, RFC 4180) হলো একটি সমতল, ট্যাবুলার টেক্সট ফরম্যাট। JSON থেকে CSV রূপান্তর সেই গাছটিকে সারি ও কলামে ফ্ল্যাট করে যাতে API রেসপন্স থেকে শুরু হওয়া একটি ডেটাসেট একটি সারিও পুনরায় টাইপ না করেই স্প্রেডশিটে সরাসরি খোলা যায়।
JSON থেকে CSV রূপান্তর কীভাবে কাজ করে?
প্রতিটি রূপান্তর আপনার ব্রাউজারে স্থানীয়ভাবে চলে। উচ্চ-স্তরের ধাপগুলো হলো:
JSON.parseইনপুট যাচাই করে এবং নিশ্চিত করে যে এটি রেকর্ডের একটি টপ-লেভেল অ্যারে। ব্র্যাকেট, কমা বা উদ্ধৃত কী সঠিক না হলে স্পষ্ট ত্রুটি আসে।- রাইটার আপনার রেকর্ড থেকে হেডার কলাম নেয়: হয় দেখা সব কীর ইউনিয়ন, অথবা শুধু প্রথম রেকর্ডের কী — আপনার পছন্দ অনুযায়ী।
- নেস্টেড অবজেক্ট ডট-কী-তে ফ্ল্যাটেন হয় (
user.id,user.city) অথবা একটি JSON সেল হিসেবে স্ট্রিংগিফাই — আপনার পছন্দ অনুযায়ী। অবজেক্টের ভেতরের অ্যারে সর্বদা JSON-এ সিরিয়ালাইজ হয়। - প্রতিটি সেল RFC 4180 অনুযায়ী এস্কেপ হয়: যে কোনো মান যাতে ডিলিমিটার, ডাবল কোট বা লাইন ব্রেক আছে তা কোটে মোড়া হয় এবং অভ্যন্তরীণ কোট দ্বিগুণ করা হয়। সারিগুলো
-এ শেষ হয়। - CSV আউটপুট রিড-অনলি textarea-তে লেখা হয় এবং ডাউনলোড লিঙ্ক সঠিক MIME টাইপ সহ একটি
Blobতৈরি করে (text/csv;charset=utf-8) যাতে একটি ক্লিকে ফাইল সংরক্ষণ করা যায়।
এই টুল দিয়ে JSON থেকে CSV কেন রূপান্তর করবেন?
- গোপনীয়তা: প্রতিটি পার্স, ফ্ল্যাটেন ও রাইট পাস আপনার ব্রাউজারে হয়। ডেটা কখনও আমাদের সার্ভারে পৌঁছায় না।
- সঠিকতা: রাইটার RFC 4180 অনুসরণ করে।
Bob, Jr.এর মতো মান"Bob, Jr."হয় — দুটি কলাম নয়, একটি উদ্ধৃত সেল — এবং এমবেডেড নিউলাইন ও কোট পুরো প্রক্রিয়ায় অক্ষত থাকে। - স্প্রেডশিট-প্রস্তুত: আউটপুট সরাসরি Excel বা Google Sheets-এ পেস্ট হয়, হেডার কলাম আগেই আপনার কী থেকে নেওয়া, তাই ডেটা ব্যবহারযোগ্য হওয়ার আগে কোনো ম্যানুয়াল পরিষ্কার নেই।
- নমনীয়তা: নেস্টেড অবজেক্টের জন্য ফ্ল্যাটেন ও স্ট্রিংগিফাইয়ের মধ্যে পরিবর্তন করুন, নন-কমা CSV ডায়ালেক্টের জন্য যেকোনো ডিলিমিটার বেছে নিন, এবং হেডার সব কী থেকে আসবে নাকি শুধু প্রথম রেকর্ড থেকে তা ঠিক করুন।
JSON থেকে CSV রূপান্তরের সাধারণ ব্যবহার কী কী?
JSON-কে CSV-এ ফ্ল্যাটেন করা ডেটা কাজ ও টুলিং জুড়ে দেখা যায়:
- ডেটা এক্সপোর্ট: একটি API রেসপন্স CSV ফাইলে পরিণত করা যাতে আপনার ফিনান্স, অপস বা প্রোডাক্ট দল কোড না লিখে Excel বা Google Sheets-এ খুলতে পারে।
- রিপোর্টিং: একটি JSON কোয়েরি ফলাফল স্প্রেডশিটে নামিয়ে পিভট টেবিল, চার্ট বা সূত্রের কলাম তৈরির জন্য। কাঁচা JSON-এ এই ধরনের কাজ কষ্টকর।
- স্প্রেডশিট পর্যালোচনা: অ-প্রযুক্তিগত পর্যালোচকরা সেল-বাই-সেল পড়তে ও সম্পাদনা করতে পারেন সেজন্য নেস্টেড JSON কনফিগ (সেটিংস, ফিচার ফ্ল্যাগ, A/B ভেরিয়েন্ট) CSV-এ ফ্ল্যাটেন করা।
JSON থেকে CSV উদাহরণ কেমন দেখায়?
[{"name":"Alice","age":30},{"name":"Bob, Jr.","age":25}] পেস্ট করুন, ডিলিমিটার কমায় রাখুন এবং CONVERT চাপুন। তিনটি লাইন পাবেন: একটি name,age হেডার সারি, একটি Alice,30 ডেটা সারি, এবং একটি "Bob, Jr.",25 সারি। এমবেডেড কমা ঠিক সেটাই যা সাধারণ join-এ সমস্যা সৃষ্টি করে — এখানে RFC 4180 কোটিং সক্রিয় হয় যাতে সেলটি অক্ষত থাকে।
এই JSON থেকে CSV কনভার্টার কি সম্পূর্ণ আমার ব্রাউজারে চলে?
হ্যাঁ। প্রতিটি পার্স, ফ্ল্যাটেন ও রাইট পাস আপনার ব্রাউজার ট্যাবের ভেতরে JavaScript হিসেবে স্থানীয়ভাবে চলে। টুলটি একেবারেই fetch, XMLHttpRequest বা navigator.sendBeacon কল করে না — আপনার JSON পেলোড কখনও আমাদের সার্ভার, তৃতীয় পক্ষের কনভার্টার বা কোনো অ্যানালিটিক্স পাইপলাইনে পৌঁছায় না। পেজ লোড হলে অফলাইনেও কাজ করে।
এই কনভার্টার সর্বোচ্চ কত ইনপুট আকার সামলাতে পারে?
কনভার্টার পুরো ইনপুট মেমরিতে বাফার করে এবং মূল থ্রেডে সিঙ্ক্রোনাসলি চলে, তাই ব্যবহারিক সীমা আপনার ডিভাইসের উপর নির্ভর করে। আধুনিক ল্যাপটপে প্রায় ১০ MB JSON (প্রায় ১,০০,০০০ সাধারণ সারি) পর্যন্ত লক্ষণীয় বিরতি ছাড়াই রূপান্তর হয়। অতিরিক্ত বড় ডেটাসেটের জন্য পেস্ট করার আগে বিভক্ত করুন।
রাইটার কমা, কোট বা নিউলাইনযুক্ত মান কীভাবে পরিচালনা করে?
RFC 4180 অনুযায়ী। যে কোনো মান যাতে সক্রিয় ডিলিমিটার, ডাবল কোট, CR বা LF আছে তা ডাবল কোটে মোড়া হয় এবং অভ্যন্তরীণ কোট দ্বিগুণ করা হয়। তাই Bob, Jr. এর মতো নাম একক সেল "Bob, Jr." হয়, দুটি কলাম নয়, এবং বহু-লাইন বিবরণ সারি না ভেঙে একটি সেলে থাকে। এটাই সেই জায়গা যেখানে সাধারণ join(',') ভুল করে।
CSV-তে রূপান্তর করার সময় নেস্টেড JSON অবজেক্টের কী হয়?
নেস্টেড অবজেক্ট টগল অনুযায়ী নেস্টেড অবজেক্ট পরিচালনা হয়। ফ্ল্যাটেন মোডে (ডিফল্ট), কী ডট-জয়েন করা হয় — {"user":{"id":1,"city":"Paris"}} user.id ও user.city কলাম হয়। স্ট্রিংগিফাই মোডে, নেস্টেড অবজেক্ট RFC 4180 কোট এস্কেপিং সহ একটি একক JSON সেল মান হিসেবে সিরিয়ালাইজড হয়।
CSV আউটপুট কোন ডিলিমিটার ব্যবহার করতে পারে?
চারটি: কমা (,, RFC 4180 ডিফল্ট), সেমিকোলন (;, ইউরোপীয় লোকেলে সাধারণ), ট্যাব (\t, TSV ডায়ালেক্ট), এবং পাইপ (|)। আপনার ডাউনস্ট্রিম টুল যেটা প্রত্যাশা করে সেটা বেছে নিন। রাইটার নির্বাচিত ডিলিমিটারযুক্ত যেকোনো সেলকে এস্কেপ করে, তাই নির্বাচন কখনও মান নষ্ট করে না।
এই JSON থেকে CSV কনভার্টার আপনার অ্যারে ফ্ল্যাটেন করে এবং RFC 4180-সামঞ্জস্যপূর্ণ আউটপুট নির্গত করে যা আপনি সরাসরি একটি স্প্রেডশিট, রিপোর্ট বা কোড রিভিউতে পেস্ট করতে পারেন — একটি বাইটও আপলোড না করে। উল্টো দিক দরকার? CSV থেকে JSON কনভার্টার অন্য দিকে পার্স করে।