Skip to content
JSON ফরম্যাটার
Tools

JSON ফরম্যাটার

জনপ্রিয়

তাৎক্ষণিক ত্রুটি ইঙ্গিত সহ JSON সুন্দর করুন, মিনিফাই ও যাচাই করুন।

0 B
Output
  

Shortcuts: Ctrl/⌘ + Enter beautify · Ctrl/⌘ + ⇧ + M minify

Runs entirely in your browser. Nothing is uploaded.

একটি ফ্রি JSON ফরম্যাটার যা কখনো আপনার ডেটা আপলোড করে না

UtiloKit-এর JSON ফরম্যাটার এবং JSON ভ্যালিডেটর JSON নিয়ে কাজ করার পুরো ওয়ার্কফ্লো সামলায় — কোনো সাইনআপ নেই, ইনস্টলেশন নেই, এবং কখনোই সার্ভারে কিছু পাঠানো হয় না। আপনার JSON পেস্ট করুন, একটি ফাইল ড্র্যাগ করুন, বা সরাসরি এডিটরে টাইপ করুন — সাথে সাথেই সিনট্যাক্স ভ্যালিডেট হয়, আউটপুট বিউটিফাই বা মিনিফাই হয়, একটি সার্চযোগ্য কোলাপসিবল ট্রি এক্সপ্লোর করা যায়, কী সর্ট করা যায়, এবং অন্য ফরম্যাটে কনভার্ট করা যায় — সবকিছু একটি ব্রাউজার ট্যাবেই। JSONLint, JSONFormatter.org, jsoneditoronline.org, CodeBeautify JSON, এবং JSON Crack-এর মতো টুল এই ওয়ার্কফ্লোর কিছু অংশ কভার করে, কিন্তু তারা সবাই আপনার ডেটা সার্ভার-সাইডে প্রসেস করে। UtiloKit প্রতিটি অপারেশন ১০০% ক্লায়েন্ট-সাইডে রাখে, ফলে API কী, OAuth টোকেন, কানেকশন স্ট্রিং, PII এবং অন্য যেকোনো কিছু যা আপনি থার্ড-পার্টি সার্ভারে পাঠাতে চান না, তার জন্য এটি নিরাপদ।

একটি পেস্ট করা API রেসপন্সের দ্রুত সিনট্যাক্স চেক থেকে শুরু করে হাজার হাজার লাইনের একটি প্রোডাকশন কনফিগ ফাইল ভ্যালিডেট ও রিফরম্যাট করা পর্যন্ত — সবকিছু এই টুল সামলায়। কীবোর্ড শর্টকাট, ড্র্যাগ-অ্যান্ড-ড্রপ ফাইল লোডিং, ক্লিপবোর্ডে কপি এবং এক-ক্লিক ডাউনলোড সবই এতে বিল্ট-ইন। রেসপনসিভ লেআউট মোবাইলেও কাজ করে, প্রশস্ত ডেস্কটপ মনিটরেও। বুকমার্ক করে রাখুন, দরকার পড়লেই একটি নির্ভরযোগ্য, প্রাইভেট JSON ওয়ার্কস্পেস হাতের কাছে পাবেন।

সঠিক এরর লোকেশনসহ রিয়েল-টাইম JSON ভ্যালিডেশন

একটি কার্যকর JSON ভ্যালিডেটর শুধু 'ইনভ্যালিড' বলেই থামে না — এটি নির্দিষ্টভাবে জানায় সমস্যাটা কোথায়। আপনি টাইপ করা বা পেস্ট করার সাথে সাথেই এই অনলাইন ভ্যালিডেটর ধারাবাহিকভাবে আপনার JSON পার্স করে এবং প্রতিটি সিনট্যাক্স এররের সঠিক লাইন নম্বর এবং কলাম নম্বর রিপোর্ট করে: অপ্রত্যাশিত টোকেন, ট্রেইলিং কমা, মিসিং কোলন, শেষ না হওয়া স্ট্রিং, না মেলা ব্র্যাকেট, ইনভ্যালিড এস্কেপ সিকোয়েন্স এবং খালি JavaScript-স্টাইল কন্ট্রোল ক্যারেক্টার। প্রতিটি মেসেজ সহজ ভাষায় লেখা — 'লাইন ১৪, কলাম ৩-এ অপ্রত্যাশিত টোকেন }' — কোনো কাঁচা পার্সার স্ট্যাক ট্রেস নয়, তাই সরাসরি ফিক্সে যাওয়া যায়। একটি ডকুমেন্টের সব এরর একসাথে তালিকাভুক্ত হয়, তাই এক পাসেই উপরে থেকে নিচে ঠিক করতে পারেন — JSONLint-এর বিপরীতে, যা একবারে শুধু একটি এরর দেখায় এবং প্রতিটি ফিক্সের পর আবার সাবমিট করতে হয়।

Repair / JSONC মোড চালু করলে ভ্যালিডেটরটি সাধারণ বাস্তব-জীবনের নন-স্ট্যান্ডার্ড এক্সটেনশনের প্রতি সহনশীল হয়ে ওঠে: // লাইন কমেন্ট, /* ব্লক কমেন্ট */, এবং শেষ এলিমেন্টের পর ট্রেইলিং কমা। এতে কভার হয় সেই কনফিগ ফাইলগুলো যা ডেভেলপাররা প্রতিদিন কাজে ব্যবহার করে — tsconfig.json, .eslintrc, .babelrc, VS Code ওয়ার্কস্পেস সেটিংস, Prettier কনফিগ এবং Jest কনফিগ — যা কঠোর JSON পার্সার সম্পূর্ণভাবে প্রত্যাখ্যান করত।

বিউটিফাই, মিনিফাই এবং সর্ট — আউটপুট ফরম্যাটে পূর্ণ নিয়ন্ত্রণ

একটি JSON বিউটিফায়ার হিসেবে, এই টুল কমপ্রেসড বা মিনিফাইড ডেটাকে ২-স্পেস, ৪-স্পেস বা ট্যাব ইনডেন্টেশনের পছন্দসহ প্রিটি-প্রিন্ট করে, রঙিন সিনট্যাক্স হাইলাইটিং এবং লাইন-নম্বর গাটারসহ রেন্ডার করে। এক ক্লিকে JSON কে সবচেয়ে ছোট ভ্যালিড পেলোডে মিনিফাই করে — সব হোয়াইটস্পেস ও নিউলাইন সরিয়ে — HTTP API রেসপন্স, কমপ্যাক্ট লগ স্টোরেজ, ডেটাবেজ ডকুমেন্ট ফিল্ড, বা যেকোনো ক্ষেত্র যেখানে পেলোড সাইজ গুরুত্বপূর্ণ। লাইভ বাইট-সাইজ পরিসংখ্যান বাইট এবং শতাংশ হ্রাস উভয় হিসেবেই আগে-পরের সঠিক তুলনা দেখায়।

Sort keys প্রতিটি নেস্টিং লেভেলে সব অবজেক্ট কী রিকার্সিভভাবে বর্ণানুক্রমিক করে দেয় — একই ডেটার দুটি JSON রিপ্রেজেন্টেশনের ডিফ করার জন্য (যাদের কী ভিন্ন ক্রমে আছে), API রেসপন্সকে একটি ক্যানোনিক্যাল ডিটারমিনিস্টিক ফর্মে নরমালাইজ করার জন্য, বা বড় কনফিগ ফাইলে ধারাবাহিক কী ক্রম যাতে স্ক্যান করা দ্রুত হয় তার জন্য এটি উপযোগী। sort, beautify এবং minify স্বাধীনভাবে একসাথে ব্যবহার করুন — sort → minify ক্যানোনিক্যাল মিনিমাল JSON তৈরি করে যা ক্যাশ কী বা কনটেন্ট হ্যাশ ইনপুট হিসেবে উপযুক্ত।

সার্চযোগ্য ট্রি ভিউ — যেকোনো গভীরতায় জটিল JSON নেভিগেট করুন

JSON ট্রি ভিউ গভীরভাবে নেস্টেড ডকুমেন্টকেও একটি নেভিগেবল, কোলাপসিবল স্ট্রাকচারে রূপান্তরিত করে। এক ক্লিকে আলাদা নোড এক্সপ্যান্ড বা কোলাপস করুন, অথবা 'Expand all' / 'Collapse all' ব্যবহার করে পুরো ভিউ এবং টপ-লেভেল সারাংশের মধ্যে সুইচ করুন। সার্চ বক্সে টাইপ করলে ভিজিবল ট্রি ফিল্টার হয়ে শুধু আপনার কোয়েরির সাথে মেলা কী বা ভ্যালু দেখাবে — না মেলা ব্রাঞ্চগুলো ফিকে হয়ে যায় আর মেলা পথগুলো দৃশ্যমান থাকে, ফলে হাজার-কী ডকুমেন্টেও নির্দিষ্ট একটি ফিল্ড সেকেন্ডের মধ্যে খুঁজে পাওয়া যায়।

যেকোনো নোডে ক্লিক করলে এর সম্পূর্ণ ডট-নোটেশন পাথ ক্লিপবোর্ডে কপি হয়ে যায় — যেমন, response.data.users[3].profile.email। এই পাথ সরাসরি JSONPath কোয়েরি, JavaScript এক্সট্র্যাকশন কোড, Python ডেটা পাইপলাইন স্ক্রিপ্ট, বা API ডকুমেন্টেশনে ব্যবহারযোগ্য। ট্রি ভিউ ইনলাইনে ভ্যালু টাইপ এবং অ্যারে লেন্থও দেখায়, যা এক নজরে স্ট্রাকচারাল প্রসঙ্গ দেয় — একটি নেস্টেড অবজেক্টের ক্লোজিং ব্র্যাকেট পর্যন্ত স্ক্রল করার দরকার হয় না।

এক ক্লিকে JSON কে YAML, CSV, XML এবং TypeScript-এ কনভার্ট করুন

একটি JSON কনভার্টার হিসেবে, UtiloKit ভ্যালিড JSON-কে ডেভেলপারদের সত্যিই দরকারি চারটি ফরম্যাটে রূপান্তরিত করে। JSON থেকে YAML Kubernetes ম্যানিফেস্ট, Helm চার্ট, GitHub Actions ওয়ার্কফ্লো এবং অ্যাপ্লিকেশন কনফিগ ফাইলের জন্য পরিষ্কার, সঠিকভাবে ইনডেন্ট করা YAML তৈরি করে। JSON থেকে CSV অবজেক্টের একটি অ্যারেকে কমা-বিভক্ত সারিতে পরিণত করে, অবজেক্ট কী গুলো কলাম হেডার হিসেবে — সরাসরি Excel, Google Sheets বা Tableau-তে পেস্ট করুন। JSON থেকে XML এন্টারপ্রাইজ ইন্টিগ্রেশন এবং SOAP সার্ভিস পেলোডের জন্য প্রতিটি কী-কে XML ট্যাগে মুড়ে দেয়। JSON থেকে TypeScript একটি JSON স্যাম্পল থেকে সঠিক টাইপ এবং নেস্টেড শেপ অনুমান করে, আপনার কোডবেসে সরাসরি ব্যবহারযোগ্য ইন্টারফেস ডেফিনিশন তৈরি করে।

রিভার্স কনভার্শনও সমানভাবে সমর্থিত: একই সেশনে YAML, CSV বা XML পেস্ট করুন, প্রতিটি ভালোভাবে ফরম্যাট করা JSON-এ ফিরে যাবে। স্ট্রিং এস্কেপিং এবং আনএস্কেপিং টুলকিটটি সম্পূর্ণ করে। প্রতিটি কনভার্শন ক্লায়েন্ট-সাইড JavaScript হিসেবে চলে — PII সহ একটি CSV, ডেটাবেজ পাসওয়ার্ডসহ একটি YAML কনফিগ, বা অভ্যন্তরীণ আর্কিটেকচারের বিবরণসহ একটি TypeScript ফাইল কখনোই আপনার ব্রাউজার ছেড়ে যায় না। কোনো সার্ভারে রাউন্ড-ট্রিপ নেই, মাঝখানে কোনো থার্ড-পার্টি সার্ভিস নেই।

UtiloKit কেন JSONLint, JSONFormatter.org, CodeBeautify এবং JSON Crack-এর চেয়ে নিরাপদ

বেশিরভাগ জনপ্রিয় অনলাইন JSON টুল — JSONLint, JSONFormatter.org, jsoneditoronline.org, CodeBeautify JSON এবং JSON Crack সহ — প্রসেসিংয়ের আগে আপনার ডেটা তাদের সার্ভারে পাঠায়। পাবলিকলি উপলব্ধ JSON, যেমন স্যাম্পল API রেসপন্স বা টিউটোরিয়াল ডেটার জন্য এটি গ্রহণযোগ্য একটি ট্রেড-অফ। কিন্তু বাস্তব-জীবনের JSON-এ প্রায়ই এমন কিছু থাকে যা থার্ড-পার্টিকে পাঠানো উচিত নয়: API কী, OAuth বেয়ারার টোকেন, ডেটাবেজ কানেকশন স্ট্রিং, অভ্যন্তরীণ মাইক্রোসার্ভিস URL, গ্রাহকের ইমেইল ঠিকানা, PII, আর্থিক রেকর্ড এবং গোপনীয় ব্যবসায়িক কনফিগারেশন। UtiloKit এই ঝুঁকিটি সম্পূর্ণভাবে দূর করে: সব অপারেশন আপনার ব্রাউজারে লোকাল JavaScript হিসেবে চলে, আপনার ডেটার জন্য কোনো আউটবাউন্ড নেটওয়ার্ক রিকোয়েস্ট নেই।

কোনো সাইনআপ নেই, কোনো পেওয়াল নেই, কোনো রেট লিমিট নেই, কোনো ফাইল-সাইজ সীমাবদ্ধতা নেই, আউটপুটে কোনো ওয়াটারমার্ক নেই, এবং এডিটর ইন্টারফেসে কোনো বিজ্ঞাপন নেই। কীবোর্ড শর্টকাট, ড্র্যাগ-অ্যান্ড-ড্রপ ফাইল লোডিং, ক্লিপবোর্ড কপি এবং ফাইল ডাউনলোড সবই বিল্ট-ইন। রেসপনসিভ লেআউট কোনো ডেডিকেটেড অ্যাপ ছাড়াই মোবাইলে কাজ করে, এবং পেজ লোড হওয়ার পর পুরো টুলটি অফলাইনেও কাজ করে — বিমানে, নিষেধাজ্ঞাযুক্ত কর্পোরেট নেটওয়ার্কে, এবং যারা শুধু সংবেদনশীল অপারেশনাল ডেটা অজানা থার্ড-পার্টি সার্ভিসে প্রকাশ না করতে পছন্দ করেন তাদের জন্য নির্ভরযোগ্য।

JSON স্পেসিফিকেশন: RFC 8259 আসলে কী দাবি করে

RFC 8259, ২০১৭ সালে প্রকাশিত, বর্তমান প্রামাণিক JSON স্পেসিফিকেশন। এটি RFC 7159 (2014)-এর জায়গা নিয়েছে, যা নিজেই মূল RFC 4627 (2006)-এর স্থলাভিষিক্ত হয়েছিল। স্পেকটি ছোট — ১৫ পাতার কম — কিন্তু সুনির্দিষ্টভাবে বলে দেয় ভ্যালিড JSON কী গঠন করে। স্ট্রিং অবশ্যই ডাবল কোট ব্যবহার করবে, সিঙ্গেল কোট নয়: 'hello' সিনট্যাক্স এরর যেখানে "hello" ভ্যালিড। অবজেক্ট কী-ও অবশ্যই ডাবল-কোটেড স্ট্রিং হতে হবে: {name: "Alice"}-এর মতো একটি বেয়ার কী ইনভ্যালিড JSON, যদিও এটি ভ্যালিড JavaScript সিনট্যাক্স। ট্রেইলিং কমা অনুমোদিত নয়: একটি অ্যারে বা অবজেক্টের শেষ এলিমেন্টের পর কমা থাকতে পারবে না, যদিও ডেভেলপাররা হাতে JSON লেখার সময় বা JavaScript অবজেক্ট লিটারেল অ্যাডাপ্ট করার সময় এটি সবচেয়ে সাধারণ ভুলগুলোর একটি। কমেন্ট JSON স্পেসিফিকেশনের অংশ নয় — JSON-থেকে-উদ্ভূত কনফিগ ফরম্যাটে এটি যতই সাধারণ দেখা যাক না কেন। ডগলাস ক্রকফোর্ড, যিনি JSON ডিজাইন করেছিলেন, প্রকাশ্যে বলেছেন যে কমেন্ট ইচ্ছাকৃতভাবে বাদ দেওয়া হয়েছিল যাতে এগুলো পার্সিং নির্দেশনা হিসেবে ব্যবহার করে বিভিন্ন ইমপ্লিমেন্টেশনের মধ্যে অসামঞ্জস্য তৈরি না হয়।

সিনট্যাক্সের বাইরেও, বেশ কয়েকটি JavaScript কনস্ট্রাক্ট আছে যা ডেভেলপাররা প্রায়ই আশা করেন JSON সমর্থন করবে, কিন্তু স্পেক স্পষ্টভাবে সেগুলো বাদ দেয়। undefined-এর কোনো JSON সমতুল্য নেই — JSON-এ null আছে কিন্তু undefined নেই, তাই undefined-মূল্যের প্রপার্টিসহ একটি JavaScript অবজেক্ট সিরিয়ালাইজ করলে সাধারণত সেই কীগুলো নীরবে বাদ পড়ে যায়। Infinity এবং NaN ভ্যালিড JSON সাংখ্যিক মান নয় — স্পেক সংখ্যাগুলোকে একটি সসীম দশমিক গ্রামার দিয়ে সংজ্ঞায়িত করে, তাই {"ratio": Infinity} বা {"score": NaN} তৈরি করা একটি সিরিয়ালাইজার ইনভ্যালিড JSON জেনারেট করছে যা বেশিরভাগ পার্সার এরর দিয়ে প্রত্যাখ্যান করবে। আনএস্কেপড কন্ট্রোল ক্যারেক্টার — ইউনিকোড কোড পয়েন্ট U+0000 থেকে U+001F — স্ট্রিং-এর ভেতরে ব্যাকস্ল্যাশ সিকোয়েন্স দিয়ে এস্কেপ করতে হবে; একটি JSON স্ট্রিং ভ্যালুতে সরাসরি এম্বেড করা একটি কাঁচা নিউলাইন বা ট্যাব ক্যারেক্টার স্পেসিফিকেশন লঙ্ঘন। ডুপ্লিকেট অবজেক্ট কী গ্রামার দ্বারা প্রযুক্তিগতভাবে অনুমোদিত, কিন্তু তাদের আচরণ স্পষ্টভাবে অনির্ধারিত রাখা হয়েছে: স্পেক বলে পার্সাররা প্রথম মান, শেষ মান ব্যবহার করতে পারে বা এরর জানাতে পারে, এবং বাস্তবে বেশিরভাগ পার্সার নীরবে শেষ অকারেন্স গ্রহণ করে। ইচ্ছাকৃত কোনো উদ্দেশ্যে ডুপ্লিকেট কী-র উপর নির্ভর করা একটি পোর্টেবিলিটি ঝুঁকি।

এই সীমাবদ্ধতাগুলো বুঝলেই স্পষ্ট হয় কেন এত JSON কনফিগ ফাইল যা দেখতে ভ্যালিড মনে হয়, আসলে JSONC — কমেন্টসহ JSON, একটি সুপারসেট যা স্ট্যান্ডার্ড JSON নয় এবং শুধু JSONC-অনুগত পার্সার দিয়ে পার্স করা যায়। TypeScript-এর tsconfig.json, VS Code-এর settings.json, ESLint-এর .eslintrc.json, Prettier-এর .prettierrc এবং Babel-এর .babelrc সবগুলোতেই সাধারণত কমেন্ট সিনট্যাক্স এবং ট্রেইলিং কমা থাকে যা কঠোর RFC 8259 পার্সার প্রত্যাখ্যান করবে। এটি কোনো ভুল নয় — এই টুলগুলো ইচ্ছাকৃতভাবে আরও ব্যবহার-বান্ধব কনফিগ ফরম্যাট বেছে নিয়েছে এবং নিজস্ব পার্সার শিপ করে। ব্যবহারিক প্রভাব হলো, আপনি নন-স্ট্যান্ডার্ড সিনট্যাক্স আগে না সরিয়ে নিরাপদে এই ফাইলগুলো JSON.parse() কলে দিতে পারবেন না — এবং ঠিক এটাই UtiloKit-এর Repair / JSONC মোড স্বয়ংক্রিয়ভাবে করে দেয়।

API ডিজাইনে JSON: REST, JSON:API, JSON-RPC এবং স্ট্রিমিং ফরম্যাট

প্রায় ২০১০ থেকে ২০১২ সালের মধ্যে REST API রেসপন্সের প্রভাবশালী ফরম্যাট হিসেবে JSON, XML-কে ছাড়িয়ে গিয়েছিল, যার বাস্তবিক কারণগুলো আজও প্রযোজ্য। JSON-এ কোনো ক্লোজিং ট্যাগ নেই, তাই {"id": 1, "name": "Alice", "role": "admin"}-এর মতো একটি তিন-ফিল্ডের অবজেক্ট হয়তো ৪০ বাইট নেবে যেখানে সমতুল্য XML — তার ওপেনিং ট্যাগ, ক্লোজিং ট্যাগ এবং XML ডিক্লারেশনসহ — হয়তো ১৫০ বাইট বা তার বেশি নিতে পারে। JSON প্রতিটি বড় প্রোগ্রামিং ভাষায় নেটিভ ডেটা স্ট্রাকচারের (অবজেক্ট, অ্যারে, স্ট্রিং, সংখ্যা, বুলিয়ান, null) সাথে সরাসরি মেলে, যা XML DOM মডেলের impedance mismatch দূর করে দেয় যেখানে সবকিছুই একটি নোড। SVG, RSS, Atom এবং XHTML-এর মতো ডকুমেন্ট-কেন্দ্রিক ফরম্যাটের জন্য, MuleSoft-এর মতো এন্টারপ্রাইজ ইন্টিগ্রেশন প্ল্যাটফর্মে SOAP সার্ভিসের জন্য, এবং লিগ্যাসি আর্থিক ও সরকারি সিস্টেমের জন্য XML এখনও সঠিক পছন্দ যেখানে XML স্কিমা চুক্তিবদ্ধভাবে বাধ্যতামূলক। কিন্তু নতুন REST এবং GraphQL API-র জন্য, JSON হলো বেসলাইন প্রত্যাশা। JSON:API (jsonapi.org) একধাপ এগিয়ে গিয়ে REST রেসপন্সে JSON কীভাবে স্ট্রাকচার্ড হওয়া উচিত তার কনভেনশন সংজ্ঞায়িত করে — টাইপ ও আইডিসহ রিসোর্স অবজেক্ট, লিংকড রিসোর্সের জন্য একটি রিলেশনশিপ ম্যাপ, পেজিনেশন ও মেটাডেটার জন্য একটি মেটা ব্লক, এবং একটি স্ট্যান্ডার্ডাইজড এরর অ্যারে অন্তর্ভুক্ত। টিমগুলো JSON:API গ্রহণ করে বার বার এই আলোচনা এড়াতে যে সম্পর্কিত অবজেক্ট ইনলাইন নেস্ট করা উচিত নাকি আইডি দিয়ে রেফারেন্স করা উচিত, এরর একটি টপ-লেভেল অ্যারে না প্রপার্টি হিসেবে যাবে, এবং পেজিনেশন কার্সার কীভাবে রিপ্রেজেন্ট করা উচিত।

JSON-RPC 2.0 JSON-এর উপর নির্মিত একটি রিমোট প্রোসিডিউর কল প্রোটোকল। একটি রিকোয়েস্ট একটি মেথড নাম, একটি params অ্যারে বা অবজেক্ট, এবং একটি id বহন করে; রেসপন্স একটি result বা error অবজেক্ট একই id সহ বহন করে, একটি একক কানেকশনে রিকোয়েস্ট-রেসপন্স ম্যাচিং সক্ষম করে। ফরম্যাটটি ইচ্ছাকৃতভাবে মিনিমাল: {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1} রিটার্ন করে {"jsonrpc": "2.0", "result": 19, "id": 1}। JSON-RPC ব্যবহৃত হয় Ethereum-এর Web3 API দ্বারা সব ব্লকচেইন ইন্টারঅ্যাকশনের জন্য, VS Code, Neovim এবং প্রতিটি আধুনিক IDE-তে কোড ইন্টেলিজেন্স চালিত Language Server Protocol (LSP) দ্বারা, এবং বিস্তৃত পরিসরের অভ্যন্তরীণ মাইক্রোসার্ভিস সিস্টেমে যেখানে HTTP verbs এবং URL রাউটিং-এর ওভারহেড অপ্রয়োজনীয়। NDJSON (নিউলাইন-ডিলিমিটেড JSON, JSON Lines-ও বলা হয়) একটি ভিন্ন সীমাবদ্ধতা সমাধান করে: বড় ডেটাসেট স্ট্রিমিং করা যা একটি একক JSON অ্যারে হিসেবে লোড করা অব্যবহারিক হবে। NDJSON ফরম্যাটে প্রতিটি লাইন একটি স্বাধীন, সম্পূর্ণ JSON অবজেক্ট। একটি সার্ভার সম্পূর্ণ ডেটাসেট বাফার না করে বা একটি অ্যারেতে না মুড়েই ক্রমান্বয়ে রেকর্ড এমিট করতে পারে যেমন সেগুলো জেনারেট হয়। লগ অ্যাগ্রিগেশন পাইপলাইন, অ্যানালিটিক্স ইভেন্ট স্ট্রিম, মেশিন লার্নিং ট্রেনিং ডেটা এক্সপোর্ট, এবং বাল্ক API এন্ডপয়েন্ট সাধারণত NDJSON ব্যবহার করে কারণ এটি একজন কনজিউমারকে শেষ রেকর্ড তৈরি হওয়ার আগেই প্রথম রেকর্ড প্রসেস করা শুরু করতে দেয়।

এই চারটি ফরম্যাট — অ্যাড-হক REST JSON, JSON:API, JSON-RPC 2.0, এবং NDJSON — প্রতিটি ভিন্ন সমস্যা সমাধান করে এবং একে অন্যের সাথে অদল-বদলযোগ্য নয়। ভুল একটি বেছে নিলে ঘর্ষণ তৈরি হয়: একটি JSON-RPC সার্ভার যা টিমরা REST API হিসেবে কনজিউম করার চেষ্টা করে তাতে বিভ্রান্তিকর URL সিমান্টিক্স থাকবে; একটি অ্যাড-হক REST API যা বিভিন্ন এন্ডপয়েন্টে ভিন্ন শেপে আইটেমের অ্যারে রিটার্ন করে, তা সেই bikeshedding ওভারহেড তৈরি করে যা JSON:API সমাধান করার জন্যই আবিষ্কৃত হয়েছিল; একটি স্ট্রিমিং ডেটা এন্ডপয়েন্ট যা সবকিছু একটি একক JSON অ্যারেতে মুড়ে দেয় তা কনজিউমারদের একটি রেকর্ড পার্স করার আগেই পুরো রেসপন্স বাফার করতে বাধ্য করে। প্রতিটি ফরম্যাট কোথায় সবচেয়ে ভালো কাজ করে তা বোঝা বাস্তব API পেলোড ভ্যালিডেট এবং ডিবাগ করাকে আরও কার্যকর করে তোলে, কারণ আপনি যে স্ট্রাকচার আশা করেন তা সম্পূর্ণভাবে নির্ভর করে এন্ডপয়েন্টটি কোন প্রোটোকল ঘিরে ডিজাইন করা হয়েছিল তার উপর।

JSON নিরাপত্তা: ইনজেকশন, প্রোটোটাইপ পলিউশন এবং CSRF বিবেচনা

JSON ইনজেকশন ওয়েব অ্যাপ্লিকেশনে সবচেয়ে কম মূল্যায়িত ইনপুট-ভ্যালিডেশন দুর্বলতাগুলোর একটি। এটি ঘটে যখন ব্যবহারকারী-নিয়ন্ত্রিত ইনপুট একটি সঠিক সিরিয়ালাইজার ব্যবহারের পরিবর্তে স্ট্রিং অপারেশন ব্যবহার করে সরাসরি একটি JSON স্ট্রিং-এ যুক্ত করা হয়। একটি এন্ডপয়েন্ট যা '{ "username": "' + userInput + '" }' হিসেবে একটি পেলোড তৈরি করে তা তাৎক্ষণিকভাবে শোষণযোগ্য: একজন ব্যবহারকারী যিনি ", "admin": true, "x": " মান সরবরাহ করেন তিনি উদ্দেশ্যকৃত স্ট্রিং প্রসঙ্গ থেকে বেরিয়ে গিয়ে JSON অবজেক্টে একটি স্বেচ্ছাচারী অতিরিক্ত কী ইনজেক্ট করেন। সমাধান সবসময় একটি সঠিক JSON সিরিয়ালাইজার ব্যবহার করা — JavaScript-এ JSON.stringify(), Python-এ json.dumps(), Java-তে Jackson-এর ObjectMapper — এবং স্ট্রিং কনক্যাটেনেশন বা টেমপ্লেট লিটারেল দিয়ে কখনো JSON পেলোড তৈরি না করা। এই ফরম্যাটার ও ভ্যালিডেটরের মতো একটি টুল ডেভেলপমেন্টের সময় দেখতে সহায়ক যে একটি সিরিয়ালাইজার ঠিক কী তৈরি করছে এবং নিশ্চিত করতে যে ফিল্ড ভ্যালুর বিশেষ ক্যারেক্টার সঠিকভাবে এস্কেপ হচ্ছে, JSON স্ট্রাকচার হিসেবে ব্যাখ্যা হচ্ছে না।

প্রোটোটাইপ পলিউশন একটি আক্রমণের শ্রেণী যা বিশেষভাবে JavaScript অ্যাপ্লিকেশনে ঘটে যারা অবিশ্বস্ত উৎস থেকে JSON পার্স করে। যদি একজন আক্রমণকারী আপনার অ্যাপ্লিকেশনকে {"__proto__": {"admin": true}} ধারণকারী একটি ডকুমেন্টে JSON.parse() কল করাতে বাধ্য করতে পারে এবং ফলস্বরূপ অবজেক্টটি তারপর একটি naive deep-merge ফাংশন ব্যবহার করে অন্য একটি অবজেক্টে মার্জ করা হয়, তাহলে __proto__ কী JavaScript Object প্রোটোটাইপেই লিখতে পারে — অর্থাৎ প্রসেসের পরবর্তী প্রতিটি অবজেক্ট admin: true সরাসরি প্রপার্টি হিসেবে উত্তরাধিকার সূত্রে পায়। এটি lodash (CVE-2019-10744), jQuery এবং অন্যান্য সহ জনপ্রিয় npm প্যাকেজে একটি শোষণযোগ্য দুর্বলতা হিসেবে প্রদর্শিত হয়েছে। সঠিক প্রশমন হলো merge টার্গেট হিসেবে Object.create(null) ব্যবহার করা যাতে বেস অবজেক্টের কোনো প্রোটোটাইপ না থাকে, মার্জ করার আগে ইনকামিং JSON একটি স্কিমার বিপরীতে ভ্যালিডেট করা, বিপজ্জনক কী ফিল্টার করতে JSON.parse-এর reviver ফাংশন ব্যবহার করা, এবং অবিশ্বস্ত ডেটায় deep-merge প্যাটার্ন সম্পূর্ণভাবে এড়িয়ে চলা।

আরও দুটি ঐতিহাসিক দুর্বলতা প্রসঙ্গের জন্য জানা ভালো। JSON Hijacking এমন একটি আক্রমণ ছিল যা প্রায় ২০১০ সালের দিকে ব্রাউজার সিকিউরিটি মডেল কঠোর হওয়ার আগে কাজ করত: একটি ক্ষতিকর পেজ একটি প্রমাণীকৃত JSON এন্ডপয়েন্টের দিকে নির্দেশিত <script src="https://victim-api.com/user-data"></script> ট্যাগ অন্তর্ভুক্ত করত, তারপর গ্লোবাল Array কনস্ট্রাক্টর ওভাররাইড করে পার্সড ডেটা এভালুয়েট হওয়ার সময় ক্যাপচার করত। আধুনিক ব্রাউজার JSON রেসপন্সের ক্রস-অরিজিন স্ক্রিপ্ট এক্সিকিউশন ব্লক করে, এবং Content-Type: application/json (যা ক্রস-অরিজিন ফর্ম সাবমিশন দ্বারা সেট করা যায় না) দাবি করার স্ট্যান্ডার্ড ডিফেন্স আক্রমণের সুযোগ দূর করে। Angular-এর )]}', দিয়ে JSON রেসপন্স প্রিফিক্স করার কনভেনশন এই যুগের একটি অবশিষ্টাংশ — প্রিফিক্সটি স্ক্রিপ্ট হিসেবে এক্সিকিউট হলে একটি সিনট্যাক্স এরর তৈরি করে, এমনকি পুরনো ব্রাউজারেও এটি নিরাপদ করে দেয়। JSON API-র বিরুদ্ধে CSRF সম্পর্কিত: প্রাথমিক JSON API যেগুলো text/plain সহ যেকোনো Content-Type গ্রহণ করত সেগুলো একটি ক্রস-অরিজিন HTML ফর্ম দ্বারা ট্রিগার হতে পারত, কারণ ব্রাউজার সেই কনটেন্ট টাইপের সাথে ফর্ম সাবমিশন অনুমতি দেয়। রাইট এন্ডপয়েন্টে Content-Type: application/json বাধ্যতামূলক করা — যা ব্রাউজার CORS প্রিফ্লাইট ছাড়া ক্রস-অরিজিন ফর্ম সাবমিশনে সেট করতে পারে না — এই ভেক্টর বন্ধ করে দেয়। একসাথে বিবেচনা করলে, এই উদ্বেগগুলো এমন একটি নীতি জোরদার করে যা সার্ভার-সাইড কোডের মতোই ক্লায়েন্ট-সাইড টুলিংয়েও প্রযোজ্য: যেকোনো নিরাপত্তা-সংক্রান্ত প্রসঙ্গে ব্যবহারের আগে অবিশ্বস্ত উৎসের JSON-এর গঠন যাচাই না করে এবং এর কনটেন্ট স্যানিটাইজ না করে কখনো এতে বিশ্বাস করবেন না

Frequently asked questions

JSON ফরম্যাটার কি ব্যবহার করা ফ্রি?

হ্যাঁ — সম্পূর্ণ ফ্রি, কোনো সাইনআপ নেই, কোনো পেওয়াল নেই, কোনো ফাইল-সাইজ সীমা নেই, এবং আপনি যত ডকুমেন্ট ভ্যালিডেট, বিউটিফাই, মিনিফাই বা কনভার্ট করতে চান তার কোনো সীমা নেই। প্রতিটি ফিচার সবার জন্য অ্যাকাউন্ট ছাড়াই উপলব্ধ: সঠিক এরর কো-অর্ডিনেটসহ রিয়েল-টাইম ভ্যালিডেশন, কনফিগারযোগ্য ইনডেন্টেশনসহ বিউটিফায়ার ও মিনিফায়ার, সার্চযোগ্য ট্রি ভিউ, কী সর্টার, এবং সব ফরম্যাট কনভার্টার (JSON থেকে YAML, CSV, XML এবং TypeScript)। আউটপুটে কোনো বিজ্ঞাপন যোগ করা হয় না, কোনো 'Export requires Pro' সীমাবদ্ধতা নেই, এবং কোনো ব্যবহারের কোটা নেই। CodeBeautify JSON-এর মতো টুল কিছু কনভার্শন সাইন-ইনের পেছনে আটকে রাখে বা এডিটরের চারপাশে বিরক্তিকর বিজ্ঞাপন দেখায়; UtiloKit কোনো বাধা ছাড়াই সবকিছু ফ্রি দেয়।

আমার JSON কি সার্ভারে পাঠানো হয়? এটা কি প্রাইভেট?

না — আপনার JSON কোনো পরিস্থিতিতেই আপনার ডিভাইস ছেড়ে যায় না। ভ্যালিডেশন, ফরম্যাটিং, মিনিফিকেশন, ট্রি রেন্ডারিং, কী সর্টিং, এবং সব ফরম্যাট কনভার্শন আপনার ব্রাউজার ট্যাবে সরাসরি JavaScript হিসেবে চলে। আপনি যখন API কী, OAuth টোকেন, ডেটাবেজ কানেকশন স্ট্রিং, অভ্যন্তরীণ সার্ভিস URL, গ্রাহকের রেকর্ড, বা অন্য কোনো সংবেদনশীল কনফিগারেশনসহ একটি JSON ডকুমেন্ট পেস্ট করেন, কিছুই কোনো সার্ভারে পাঠানো হয় না — এমনকি এরর বিশ্লেষণ বা টেলিমেট্রির জন্যও নয়। এটি JSONLint, JSONFormatter.org, jsoneditoronline.org, CodeBeautify JSON এবং JSON Crack-এর তুলনায় একটি বাস্তব ব্যবহারিক সুবিধা, যারা সবাই আপনার ডেটা সার্ভার-সাইডে প্রসেস করে। UtiloKit দিয়ে, আপনি নিরাপদে প্রোডাকশন সিক্রেট এবং মালিকানাধীন ডেটা ফরম্যাট করতে পারেন, সার্ভার লগ, ডেটা রিটেনশন পলিসি, বা থার্ড-পার্টি অ্যাক্সেস নিয়ে চিন্তা না করেই।

বিউটিফাই এবং মিনিফাইয়ের মধ্যে পার্থক্য কী?

বিউটিফাই করা (প্রিটি-প্রিন্টিং বা ফরম্যাটিংও বলা হয়) JSON-কে মানুষের পড়ার উপযোগী করতে ইনডেন্টেশন এবং লাইন ব্রেক যোগ করে: প্রতিটি কী-ভ্যালু জোড়া নিজের লাইনে, নেস্টেড স্ট্রাকচার ২ বা ৪ স্পেস বা একটি ট্যাব দিয়ে ইনডেন্ট করা, এবং অ্যারে এলিমেন্ট স্পষ্টভাবে আলাদা করা। মিনিফাই করা এর বিপরীত: এটি প্রতিটি হোয়াইটস্পেস ক্যারেক্টার এবং নিউলাইন সরিয়ে সবচেয়ে ছোট সম্ভাব্য ভ্যালিড JSON স্ট্রিং তৈরি করে — দ্রুত নেটওয়ার্ক ট্রান্সমিশন, কমপ্যাক্ট লগ স্টোরেজ এবং পরিষ্কার ইনলাইন পেলোডের জন্য উপযোগী। একটি ৫০ KB বিউটিফাইড ডকুমেন্ট মিনিফাইড হয়ে ১২ KB-তে সংকুচিত হতে পারে, অর্থাৎ ৭৬% হ্রাস। উভয় অপারেশনই লসলেস — অন্তর্নিহিত ডেটা বাইট-বাই-বাইট অভিন্ন থাকে। লাইভ বাইট-সাইজ পরিসংখ্যান সঠিক আগে-পরের অবস্থা দেখায় যাতে আপনি কমপ্রেশন পরিমাপ করতে পারেন।

এটি কি JSON ভ্যালিডেট করতে পারে এবং ঠিক কোথায় এরর তা দেখাতে পারে?

হ্যাঁ। ভ্যালিডেটরটি আপনি টাইপ করার সাথে সাথে প্রতিটি সিনট্যাক্স এররের সঠিক লাইন নম্বর ও কলাম নম্বর রিপোর্ট করে, তাই ম্যানুয়ালি ডকুমেন্ট স্ক্যান না করেই সরাসরি সমস্যায় যেতে পারেন। সাধারণ এরর — শেষ এলিমেন্টের পর ট্রেইলিং কমা, অবজেক্ট কী-র চারপাশে মিসিং কোট, স্ট্রিং-এর ভেতরে আনএস্কেপড ক্যারেক্টার, না মেলা ব্র্যাকেট বা ব্রেস, কী ও ভ্যালুর মধ্যে মিসিং কোলন, বিচ্ছিন্ন JavaScript-স্টাইল কমেন্ট — প্রতিটি সহজ ভাষায় বর্ণনা করা হয়, কাঁচা পার্সার স্ট্যাক ট্রেস নয়। একাধিক সমস্যাযুক্ত ডকুমেন্টের জন্য, সব এরর একসাথে তালিকাভুক্ত হয় যাতে আপনি এক পাসে উপরে থেকে নিচে ঠিক করতে পারেন। এর তুলনায়, JSONLint শুধু একবারে একটি এরর দেখায় এবং প্রতিটি ফিক্সের পর পুনরায় সাবমিট করতে হয়।

এটি কি JSONC — কমেন্ট এবং ট্রেইলিং কমাসহ JSON — সমর্থন করে?

হ্যাঁ। ব্যাপকভাবে ব্যবহৃত অনেক কনফিগ ফাইল — tsconfig.json, .eslintrc, .babelrc, VS Code ওয়ার্কস্পেস সেটিংস, Jest কনফিগ, Prettier কনফিগ — JSONC ফরম্যাট ব্যবহার করে // লাইন কমেন্ট, /* ব্লক কমেন্ট */ এবং অ্যারে ও অবজেক্টে শেষ এলিমেন্টের পর ট্রেইলিং কমাসহ। কঠোর JSON পার্সার এসবের সবকটি ইনভ্যালিড হিসেবে প্রত্যাখ্যান করে। Repair / JSONC মোড চালু করলে টুলটি পার্স করার আগে নন-স্ট্যান্ডার্ড সিনট্যাক্স সরিয়ে দেয়, যাতে আপনি প্রতিটি কমেন্ট ম্যানুয়ালি না সরিয়েই কনফিগ ফাইল ভ্যালিডেট এবং ফরম্যাট করতে পারেন। পরিষ্কার, স্পেক-অনুগত JSON আউটপুটের পাশে দেখানো হয়, তাই যেকোনো প্রসঙ্গে যেখানে কঠোর JSON প্রয়োজন সেখানে RFC 8259-ভ্যালিড ভার্সনটি কপি করতে পারেন।

আমি কি JSON কী বর্ণানুক্রমিক সর্ট করতে পারি?

হ্যাঁ। 'Sort keys' অপশনটি এক অপারেশনেই পুরো ডকুমেন্টের প্রতিটি নেস্টিং লেভেলে সব অবজেক্ট কী রিকার্সিভভাবে বর্ণানুক্রমিক করে দেয় — শুধু টপ-লেভেল অবজেক্ট নয়। এটি একই ডেটা রিপ্রেজেন্ট করা কিন্তু ভিন্ন ক্রমে কী থাকা দুটি JSON ডকুমেন্ট ডিফ করার জন্য, API রেসপন্সকে একটি ক্যানোনিক্যাল ডিটারমিনিস্টিক ফর্মে নরমালাইজ করার জন্য, বড় কনফিগ ফাইল স্ক্যান করা সহজ করার জন্য, এবং JSON ক্যাশ কী বা হ্যাশ ইনপুট হিসেবে ব্যবহৃত হলে ধারাবাহিক সিরিয়ালাইজেশন নিশ্চিত করার জন্য উপযোগী। একাধিক লেভেল জুড়ে শত শত কী-সহ একটি গভীরভাবে নেস্টেড ডকুমেন্ট এক ক্লিকেই সম্পূর্ণ সর্ট হয়ে যায় — যে কাজ ম্যানুয়াল এডিটিংয়ে ঘণ্টার পর ঘণ্টা লাগত।

আমি কি ট্রি ভিউ দিয়ে বড়, গভীরভাবে নেস্টেড JSON এক্সপ্লোর করতে পারি?

হ্যাঁ। সার্চযোগ্য, কোলাপসিবল ট্রি ভিউ অনেক নেস্টিং লেভেলসহ বড় জটিল ডকুমেন্ট সামলাতে পারে। আলাদা নোড এক্সপ্যান্ড ও কোলাপস করুন, অথবা 'Expand all' এবং 'Collapse all' ব্যবহার করে পুরো ডকুমেন্ট টগল করুন। সার্চ বক্সে টাইপ করে ভিজিবল ট্রি ফিল্টার করুন শুধু আপনার কোয়েরির সাথে মেলা কী বা ভ্যালুর জন্য — না মেলা নোড ফিকে হয়ে যায় আর মেলা পথ পুরোপুরি দৃশ্যমান থাকে, ফলে প্রসঙ্গ না হারিয়ে হাজার হাজার লাইন নেভিগেট করা যায়। যেকোনো নোডে ক্লিক করলে এর সম্পূর্ণ ডট-নোটেশন পাথ (উদাহরণস্বরূপ, user.address.postalCode বা orders[2].items[0].sku) সরাসরি ক্লিপবোর্ডে কপি হয়, JSONPath কোয়েরি বা API এক্সট্র্যাকশন কোডে ব্যবহারের জন্য প্রস্তুত।

এটি কি JSON কে YAML, XML, CSV বা TypeScript-এ কনভার্ট করতে পারে?

হ্যাঁ — এক ক্লিকে ভ্যালিড JSON কে চারটি ফরম্যাটের যেকোনো একটিতে কনভার্ট করে, সবই আপনার ব্রাউজারে লোকালি চলে। JSON থেকে YAML Kubernetes ম্যানিফেস্ট, CI/CD পাইপলাইন কনফিগ, Helm চার্ট, এবং অ্যাপ্লিকেশন কনফিগারেশনের জন্য পরিষ্কার, মানুষের পড়ার উপযোগী YAML তৈরি করে। JSON থেকে XML এন্টারপ্রাইজ ইন্টিগ্রেশন, SOAP সার্ভিস এবং লিগ্যাসি সিস্টেমের জন্য প্রতিটি কী-কে উপযুক্তভাবে নামাঙ্কিত ট্যাগে মুড়ে দেয়। JSON থেকে CSV অবজেক্টের একটি অ্যারেকে কমা-বিভক্ত সারিতে রূপান্তরিত করে, কী গুলো কলাম হেডার হিসেবে — সরাসরি Excel, Google Sheets, Tableau, বা যেকোনো ডেটা পাইপলাইনে ইমপোর্ট করুন। JSON থেকে TypeScript আপনার JSON স্যাম্পল থেকে টাইপড ইন্টারফেস ডেফিনিশন তৈরি করে, সঠিক টাইপ এবং নেস্টেড অবজেক্ট শেপ অনুমান করে আপনার কোডবেসে তাৎক্ষণিক ব্যবহারের জন্য। রিভার্স কনভার্শন (YAML → JSON, CSV → JSON, XML → JSON) একই ওয়ার্কস্পেসে উপলব্ধ।

এটি JSONLint, JSONFormatter.org, jsoneditoronline.org, CodeBeautify, এবং JSON Crack থেকে কীভাবে আলাদা?

JSONLint ক্লাসিক ভ্যালিডেটর কিন্তু একবারে শুধু একটি এরর দেখায়, কোনো ট্রি ভিউ নেই, এবং কী সর্ট বা ফরম্যাট কনভার্ট করে না। JSONFormatter.org এবং jsoneditoronline.org কার্যকর টুল কিন্তু ডেটা সার্ভার-সাইডে ট্রান্সমিট করে, যা সিক্রেট বা PII ধারণকারী যেকোনো ডকুমেন্টের জন্য সমস্যা। CodeBeautify JSON কনভার্শন অফার করে কিন্তু ইন্টারফেসে বিজ্ঞাপন দিয়ে জট পাকায় এবং তাদের সার্ভারে আপনার ডেটা লগ করে। JSON Crack JSON স্ট্রাকচারের গ্রাফ ভিজ্যুয়ালাইজেশনের জন্য চমৎকার কিন্তু এটি মূলত একটি ভিজ্যুয়ালাইজেশন টুল, কোনো ভ্যালিডেশন-এবং-কনভার্শন ওয়ার্কফ্লো নয়। UtiloKit রিয়েল-টাইম ভ্যালিডেশন সঠিক এরর কো-অর্ডিনেটসহ, বিউটিফাই ও মিনিফাই, রিকার্সিভ কী সর্টিং, সার্চযোগ্য কোলাপসিবল ট্রি, রিভার্স কনভার্শনসহ চারটি ফরম্যাট কনভার্টার, JSONC রিপেয়ার, এবং স্ট্রিং এস্কেপিং — সবকিছু ১০০% ক্লায়েন্ট-সাইডে, কোনো বিজ্ঞাপন নেই, কোনো আপলোড নেই।

আমি কীভাবে JSON কে CSV-তে কনভার্ট করব?

আপনার JSON পেস্ট করুন — এটি অবশ্যই অবজেক্টের একটি অ্যারে হতে হবে যেখানে প্রতিটি অবজেক্ট একই কী স্ট্রাকচার শেয়ার করে — তারপর CSV কনভার্শন বাটনে ক্লিক করুন। UtiloKit অবজেক্ট কী-কে কলাম হেডার হিসেবে ম্যাপ করে এবং প্রতিটি অ্যারে এলিমেন্টকে একটি ডেটা সারিতে ম্যাপ করে, নেস্টেড ভ্যালুগুলো ডট-নোটেশন স্ট্রিং-এ ফ্ল্যাটেন করে হ্যান্ডেল করে (উদাহরণস্বরূপ, address.city একটি কলাম হয়ে যায় address.city নামে)। ফলাফলটি একটি .csv ফাইল হিসেবে ডাউনলোড করুন বা সরাসরি কপি করুন। পুরো কনভার্শন আপনার ব্রাউজারে লোকালি চলে — কোনো আপলোড নেই, কোনো সার্ভার নেই, কোনো ফাইল-সাইজ সীমাবদ্ধতা নেই — তাই PII, আর্থিক ডেটা, বা গোপনীয় রেকর্ডসহ CSV ফাইল কখনো কোথাও ট্রান্সমিট হয় না।

আমি কি CSV কে JSON-এ কনভার্ট করতে পারি?

হ্যাঁ। একটি হেডার সারিসহ CSV টেক্সট পেস্ট করুন এবং টুলটি প্রতিটি ডেটা সারিকে একটি JSON অবজেক্টে কনভার্ট করে, হেডার ভ্যালুগুলোকে কী হিসেবে ব্যবহার করে। আউটপুট একটি সঠিকভাবে ফরম্যাট করা JSON অ্যারে যা আপনি তাৎক্ষণিকভাবে ভ্যালিডেট, সর্ট, আরও কনভার্ট, বা আপনার প্রজেক্টে কপি করতে পারেন। এটি স্প্রেডশিট এক্সপোর্ট, ডেটাবেজ টেবিল ডাম্প, রিপোর্টিং-টুল আউটপুট, এবং অ্যানালিটিক্স এক্সপোর্টকে API, ফ্রন্টএন্ড অ্যাপ্লিকেশন, বা ডেটা পাইপলাইনের জন্য স্ট্রাকচার্ড JSON-এ রূপান্তরিত করার জন্য উপযোগী। কনভার্শনটি আপনার ব্রাউজারে লোকালি চলে, তাই সংবেদনশীল ব্যবসায়িক রেকর্ড বা গ্রাহক ডেটাসহ বড় CSV কখনো কোনো সার্ভারে ট্রান্সমিট হয় না।

আমার কম্পিউটারে একটি JSON ফাইল কীভাবে খুলব এবং দেখব?

কোনো বিশেষ সফটওয়্যারের দরকার নেই। যেকোনো ব্রাউজারে এই পেজটি খুলুন, তারপর হয় আপনার .json ফাইলটি সরাসরি এডিটরে ড্র্যাগ করুন বা ফাইল ইনপুটে ক্লিক করে আপনার ফাইল সিস্টেম থেকে নির্বাচন করুন। UtiloKit সাথে সাথে সিনট্যাক্স হাইলাইটিং, লাইন নম্বর, এবং একটি সম্পূর্ণ কোলাপসিবল ট্রি ভিউসহ ফাইলটি প্রদর্শন করে, তাই কোনো IDE, টেক্সট এডিটর, বা ডেস্কটপ অ্যাপ্লিকেশন ইনস্টল না করেই পড়তে, নেভিগেট করতে, সার্চ করতে এবং এডিট করতে পারেন। খুব বড় ফাইলের জন্য (মাল্টি-মেগাবাইট API লগ বা ডেটা এক্সপোর্ট), টুলটি ব্রাউজার রেসপন্সিভ রাখতে কনটেন্ট চাংকে প্রসেস করে। কাজ শেষ হলে, পরিবর্তিত বা ফরম্যাট করা ভার্সনটি একটি নতুন .json ফাইল হিসেবে ডাউনলোড করুন। প্রতিটি অপারেশন ক্লায়েন্ট-সাইডেই থাকে — ফাইলটি কখনো আপনার মেশিন ছেড়ে যায় না।

JSON কী এবং এটা কীসের জন্য ব্যবহৃত হয়?

JSON (JavaScript Object Notation) একটি লাইটওয়েট, টেক্সট-বেজড ডেটা ইন্টারচেঞ্জ ফরম্যাট যা JavaScript সিনট্যাক্সের একটি সাবসেটের উপর ভিত্তি করে তৈরি। এটি অবজেক্টে (curly braces-এ আবদ্ধ) কী-ভ্যালু জোড়া, অ্যারেতে (square brackets-এ আবদ্ধ) অর্ডার করা কালেকশন, এবং স্ট্রিং, সংখ্যা, বুলিয়ান এবং null-এর মতো স্কেলার ভ্যালু হিসেবে ডেটা রিপ্রেজেন্ট করে। JSON হলো REST API, কনফিগারেশন ফাইল, ডেটাবেজ ডকুমেন্ট (MongoDB, Firestore, DynamoDB), ব্রাউজার স্টোরেজ (localStorage, IndexedDB), এবং মাইক্রোসার্ভিস আর্কিটেকচারে ইন্টার-সার্ভিস কমিউনিকেশনের প্রভাবশালী ডেটা ফরম্যাট। এর মানুষের পড়ার উপযোগী ফরম্যাট এবং প্রায় প্রতিটি প্রোগ্রামিং ভাষায় ডেটা স্ট্রাকচারে সরাসরি ম্যাপিং একে বেশিরভাগ আধুনিক ওয়েব অ্যাপ্লিকেশনে XML-এর ব্যবহারিক প্রতিস্থাপক বানিয়েছে।

JSON এবং XML-এর মধ্যে পার্থক্য কী?

JSON এবং XML উভয়ই হায়ারার্কিক্যাল স্ট্রাকচার্ড ডেটা রিপ্রেজেন্ট করে কিন্তু ভার্বোসিটি, পঠনযোগ্যতা এবং ইকোসিস্টেমে ভিন্ন। JSON কমপ্যাক্ট কী-ভ্যালু জোড়া এবং অ্যারে ব্যবহার করে যা যেকোনো প্রোগ্রামিং ভাষায় অবজেক্ট এবং লিস্টে সরাসরি ম্যাপ করে — ফলে ছোট পেলোড, দ্রুত পার্সিং, এবং আরও পঠনযোগ্য আউটপুট। XML জটিল নোড মডেলসহ ভার্বোস জোড়া ওপেন/ক্লোজ ট্যাগ ব্যবহার করে যা প্রতি ফিল্ডে যথেষ্ট ওভারহেড যোগ করে। তিনটি ফিল্ডসহ একটি JSON অবজেক্টের ওজন হয়তো ৫০ বাইট; সমতুল্য XML হয়তো ২০০+ বাইট। আধুনিক REST API প্রায় সর্বজনীনভাবে JSON ব্যবহার করে। XML এন্টারপ্রাইজ ইন্টিগ্রেশন, SOAP সার্ভিস, ডকুমেন্ট-কেন্দ্রিক সিস্টেম (SVG, RSS, XHTML), এবং লিগ্যাসি আর্থিক ও সরকারি সিস্টেমে সাধারণ থেকে যায়। UtiloKit এক ক্লিকে দুইটির মধ্যে কনভার্ট করে, সম্পূর্ণভাবে আপনার ব্রাউজারে।

কোন প্রোগ্রামিং ভাষা নেটিভভাবে JSON সমর্থন করে?

প্রায় সব আধুনিক ভাষা বিল্ট-ইন বা স্ট্যান্ডার্ড-লাইব্রেরি JSON সমর্থন দেয়। JavaScript এবং TypeScript-এর ভাষার মধ্যেই JSON.parse() এবং JSON.stringify() বিল্ট-ইন আছে। Python-এ স্ট্যান্ডার্ড লাইব্রেরিতে json মডিউল আছে Python 2.6 থেকেই। Java-তে Jackson এবং Gson হলো de-facto স্ট্যান্ডার্ড। Go-তে স্ট্যান্ডার্ড লাইব্রেরিতে encoding/json আছে। Rust-এ serde_json আছে। C#-এ System.Text.Json আছে। Swift-এ Codable আছে। Kotlin-এ kotlinx.serialization আছে। Ruby, PHP, Scala, Julia, R, এবং Elixir সবারই পরিণত JSON লাইব্রেরি আছে। এই সর্বজনীন গ্রহণযোগ্যতাই ঠিক কারণ কেন JSON ওয়েব API-র জন্য প্রভাবশালী ইন্টারচেঞ্জ ফরম্যাট হয়ে উঠেছে — যেকোনো ভাষায় যেকোনো ক্লায়েন্ট বাহ্যিক ডিপেন্ডেন্সি ছাড়াই এটি পার্স এবং প্রোডিউস করতে পারে।

ChatGPT বা AI টুল কি সঠিকভাবে JSON ফরম্যাট বা কনভার্ট করতে পারে?

AI টুল সাধারণ JSON ফরম্যাটিং সামলাতে পারে কিন্তু প্রোডাকশন ব্যবহারের জন্য বাস্তব ঝুঁকি বহন করে। LLM নীরবে কী পুনরায় সাজাতে পারে, স্বেচ্ছাচারী পয়েন্টে বড় অ্যারে সংক্ষিপ্ত করতে পারে, অস্বাভাবিক ইউনিকোড ক্যারেক্টার বাদ দিতে পারে, সাংখ্যিক প্রেসিশন পরিবর্তন করতে পারে (বিশেষ করে বড় ইন্টিজার এবং ফ্লোটের জন্য), বা মূলে অস্তিত্বহীন ফিল্ড নাম তৈরি করতে পারে। সংকট ডেটার জন্য — API রেসপন্স, ডেটাবেজ এক্সপোর্ট, সঠিক সাংখ্যিক মানসহ কনফিগারেশন ফাইল, বা ফিল্ড সম্পূর্ণতা যাচাইযোগ্য যেকোনো ডকুমেন্ট — UtiloKit-এর মতো একটি ডিটারমিনিস্টিক পার্সার কঠোরভাবে নিরাপদ। UtiloKit একটি প্রকৃত পার্সার দিয়ে JSON ফরম্যাট, ভ্যালিডেট এবং কনভার্ট করে যা প্রতিবার বাইট-পারফেক্ট, লসলেস আউটপুট তৈরি করে। এবং যেহেতু এটি আপনার ব্রাউজারে লোকালি চলে, আপনার ডেটা কখনো কোনো AI সার্ভিস বা বাহ্যিক সার্ভারে পাঠানো হয় না।

JSONPath কী এবং এই টুলে আমি এটি কীভাবে ব্যবহার করব?

JSONPath একটি JSON ডকুমেন্ট থেকে নির্দিষ্ট মান এক্সট্র্যাক্ট করার একটি কোয়েরি ভাষা, XML-এর জন্য XPath-এর মতোই। সিনট্যাক্সটি রুট অবজেক্টের জন্য একটি ডলার চিহ্ন ($), অবজেক্ট কী-র জন্য ডট নোটেশন ($.user.name), অ্যারে এলিমেন্টের জন্য ব্র্যাকেট নোটেশন ($.orders[0].total), এবং একটি লেভেলে সব এলিমেন্ট ম্যাচ করার জন্য * এর মতো ওয়াইল্ডকার্ড ব্যবহার করে। UtiloKit-এর ট্রি ভিউ যেকোনো মানের সঠিক JSONPath আবিষ্কার করতে সাহায্য করে: যেকোনো নোডে ক্লিক করুন এবং এর সম্পূর্ণ ডট-নোটেশন পাথ আপনার ক্লিপবোর্ডে কপি হয়ে যায়, একটি JSONPath এভালুয়েটর, একটি API এক্সট্র্যাকশন স্ক্রিপ্ট, বা একটি ডেটা ট্রান্সফরমেশন টুলে ব্যবহারের জন্য প্রস্তুত। এটি বিশেষ করে উপযোগী যখন গভীরভাবে-নেস্টেড API রেসপন্স নেভিগেট করার সময় যেখানে একটি টার্গেট ফিল্ডের পাথ পাঁচ বা তার বেশি লেভেল বিস্তৃত।