JSON ফর্ম্যাট করুন

বৈধতা যাচাই করুন এবং JSON ফর্ম্যাট করুন। ইন্টারঅ্যাক্টিভ ট্রি ভিউ। চিরকাল বিনামূল্যে।
ইনপুট JSON
ফর্ম্যাটকৃত JSON
ইনপুট JSON

ব্যক্তিগত এবং সুরক্ষিত

সবকিছু আপনার ব্রাউজারে ঘটে। আপনার ফাইল আমাদের সার্ভারে কখনও স্পর্শ করে না।

অত্যন্ত দ্রুত

কোনও আপলোড নেই, কোনও অপেক্ষা নেই। আপনি একটি ফাইল ড্রপ করার মুহূর্তে রূপান্তর করুন।

আসলে বিনামূল্যে

কোনও অ্যাকাউন্টের প্রয়োজন নেই। কোনও লুকানো খরচ নেই। কোনও ফাইল আকারের কৌশল নেই।

JSON—JavaScript Object Notation—গঠনমূলক ডেটা বিনিময়ের জন্য সর্বব্যাপী, পাঠ্য-ভিত্তিক বিন্যাস। এটি IETF দ্বারা RFC 8259 এবং Ecma International দ্বারা ECMA-404হিসাবে মানক করা হয়েছে, যা একসাথে আধুনিক API, লগ, কনফিগ এবং ডেটাবেসকে শক্তি দেয় এমন কমপ্যাক্ট, ভাষা-অজ্ঞেয় সিনট্যাক্সকে সংজ্ঞায়িত করে।

সিনট্যাক্স এবং এনকোডিং: সিস্টেমগুলিকে কথা বলাতে থাকা সুনির্দিষ্ট বিটগুলি

একটি JSON মান হয় একটি অবজেক্ট, অ্যারে, স্ট্রিং, সংখ্যা, বা লিটারেল true, false, বা null এর মধ্যে একটি; অবজেক্টগুলি স্ট্রিংকে মানগুলিতে ম্যাপ করে এবং অ্যারেগুলি অর্ডার করা মান ধারণ করে—গঠনমূলক অক্ষরগুলির চারপাশে নগণ্য হোয়াইটস্পেস অনুমোদিত (RFC 8259, ECMA-404)। যদিও JSON জাভাস্ক্রিপ্ট থেকে উদ্ভূত হয়েছে, এটি ভাষা-স্বাধীন এবং কার্যত সর্বত্র সমর্থিত (MDN: JSON)। তারে, ডি-ফ্যাক্টো এবং প্রস্তাবিত এনকোডিং হল UTF-8 (RFC 8259 §8.1)। অতিরিক্ত ইন্টারপ নিরাপত্তার জন্য, I-JSON প্রোফাইল (RFC 7493) এনকোডিং এবং সংখ্যাসূচক পরিসরের आसपासের নিয়মগুলিকে কঠোর করে।

জাভাস্ক্রিপ্টে, গ্লোবাল JSON অবজেক্ট দুটি ওয়ার্কহরস প্রকাশ করে:JSON.parse (একটি ঐচ্ছিক reviver সহ) এবং JSON.stringify (সুন্দর মুদ্রণের জন্য রিপ্লেসার/স্পেসিং সহ), যেমন MDN-এ নথিভুক্ত করা হয়েছে (parse, stringify)।

সংখ্যা: প্রতারণামূলকভাবে সহজ, আশ্চর্যজনকভাবে তীক্ষ্ণ

JSON-এর সংখ্যা ব্যাকরণ দশমিক, কিন্তু স্পেকটি নির্ভুলতা বা পূর্ণসংখ্যা/ফ্লোট পার্থক্য নির্দেশ করে না। বাস্তবায়নগুলি কীভাবে তাদের উপস্থাপন করতে হয় তা বেছে নেয় (RFC 8259 §6)। জাভাস্ক্রিপ্ট এবং Node.js-এ, Number হল IEEE-754 ডাবল নির্ভুলতা, যার অর্থ হল केवल [−(2^53−1), 2^53−1]-এর মধ্যে পূর্ণসংখ্যাগুলিই ঠিক নিরাপদ—দেখুন Number.MAX_SAFE_INTEGER এবং BigInt প্রকার। এই কারণেই পাবলিক API-গুলি প্রায়শই ID-গুলিকে স্ট্রিং হিসাবে পাঠায় এবং "নিরাপদ পূর্ণসংখ্যা" স্পষ্টভাবে যাচাই করে।

ভ্যানিলা JSON-এর বাইরে: পয়েন্টার, প্যাচ এবং মার্জ-প্যাচ

ব্যবহার পরিপক্ক হওয়ার সাথে সাথে, JSON-কে ঠিকানা এবং পরিবর্তন করার জন্য মানক আবির্ভূত হয়েছে। JSON পয়েন্টার (RFC 6901) মানগুলি সনাক্ত করার জন্য একটি ক্ষুদ্র, স্ল্যাশ-দ্বারা সীমাবদ্ধ সিনট্যাক্স (যেমন, /a/b/0) যার মধ্যে ~ এবং /-এর জন্য এস্কেপিং নিয়ম রয়েছে। JSON প্যাচ (RFC 6902) আংশিক আপডেটগুলিকে অর্ডার করা অপারেশন (add, remove, replace, move, copy, test) হিসাবে মডেল করে এবং application/json-patch+json হিসাবে ভ্রমণ করে। সহজ পার্থক্যের জন্য, JSON মার্জ প্যাচ (RFC 7386) একটি নথি-আকৃতির মার্জ ব্যবহার করে: উপস্থিত ক্ষেত্রগুলি যোগ/প্রতিস্থাপন করা হয়; একটি ক্ষেত্রকে null-এ সেট করা এটিকে মুছে দেয়। অনেক ফ্রেমওয়ার্ক বাক্সের বাইরে এক বা উভয় ফর্ম সমর্থন করে।

স্কিমা এবং প্রকার: বৈধকরণ এবং তৈরি করা

JSON নিজেই স্কিমা-হীন, কিন্তু ইকোসিস্টেমগুলি বৈধকরণ, ডকুমেন্টেশন এবং কোডজেনের জন্য স্কিমার উপর নির্ভর করে। JSON স্কিমা 2020-12 পরিবার type, properties, items, এবং রচনা কীওয়ার্ডের মতো সীমাবদ্ধতা নির্দিষ্ট করে, এবং OpenAPI 3.1-এর সাথে সারিবদ্ধ হয়। কোড-জেন-কেন্দ্রিক ওয়ার্কফ্লোগুলির জন্য, JSON প্রকার সংজ্ঞা (RFC 8927) একটি ইচ্ছাকৃতভাবে কম ገላጭ ভাষা প্রদান করে যা মূলধারার প্রকার সিস্টেমে অনুমানযোগ্যভাবে ম্যাপ করে।

স্ট্রিমিং এবং বড় ডেটা: JSON লাইন এবং ক্রম

ক্লাসিক JSON প্রতি পেলোডে একটি সম্পূর্ণ পাঠ্য আশা করে, যা স্ট্রিমিং লগ এবং দীর্ঘজীবী প্রতিক্রিয়াগুলিকে জটিল করে তোলে। দুটি প্যাটার্ন সাহায্য করে:

  • JSON পাঠ্য ক্রম (RFC 7464): UTF-8 JSON পাঠ্যের একটি ধারা, প্রতিটি রেকর্ড সেপারেটর (U+001E) দ্বারা উপসর্গযুক্ত এবং LF দিয়ে শেষ হয়; application/json-seq হিসাবে নিবন্ধিত।
  • NDJSON / JSON লাইন: প্রতিটি লাইন একটি স্বতন্ত্র JSON মান—টেল, gzip, এবং ম্যাপ-রিডিউস করা সহজ (ndjson.org, jsonlines.org)। এটি বাল্ক API-তে জনপ্রিয়, যেমন, Elasticsearch-এর বাল্ক API

বাইনারি কাজিন: যখন পাঠ্য যথেষ্ট কম্প্যাক্ট হয় না

যখন ব্যান্ডউইথ বা গতি প্রাধান্য পায়, তখন "বাইনারি JSON" বিন্যাসগুলি JSON-এর ডেটা মডেলকে সংরক্ষণ করে যখন দক্ষতার জন্য মানব পাঠযোগ্যতার व्यापार করে:

  • BSON (MongoDB-এর নেটিভ বিন্যাস) বাইনারি, ডেটটাইম, এবং টাইপ করা পূর্ণসংখ্যার মতো প্রকার যোগ করে (bsonspec.org)।
  • MessagePack কম্প্যাক্ট এবং স্কিমা-মুক্ত, ব্যাপকভাবে ভাষা জুড়ে প্রয়োগ করা হয়েছে (msgpack.org)।
  • CBOR একটি প্রসারণযোগ্য, কম্প্যাক্ট বিন্যাস ( JSON ট্রান্সকোডিং নির্দেশিকা সহ) মানক করে এবং IoT/সীমাবদ্ধ প্রসঙ্গে সাধারণ (RFC 8949, cbor.io)।
  • Smile (জ্যাকসন ইকোসিস্টেম থেকে) JSON-কে পুনরাবৃত্ত নাম/মানের জন্য ঐচ্ছিক ব্যাক-রেফারেন্স সহ এনকোড করে (jackson-dataformat-smile)।

নিরাপত্তা নোট: পুরানো কৌশল এবং আধুনিক সমাধান

যেহেতু JSON শুধু পাঠ্য, তাই বেশিরভাগ ঝুঁকি আসে আপনি কীভাবে এটি পরিবহন এবং হ্যান্ডেল করেন তা থেকে:

  • JSONP (<script>-এর মাধ্যমে ডেটা অনুরোধ করা একটি কলব্যাক সহ) ক্রস-অরিজিন অনুরোধের জন্য একটি প্রি-CORS ওয়ার্কঅ্যারাউন্ড ছিল কিন্তু বিপজ্জনক—এটি নির্বিচারে স্ক্রিপ্ট সম্পাদন করে। CORS-কে আসল application/json প্রতিক্রিয়া সহ পছন্দ করুন (OWASP: JSONP অপব্যবহার)।
  • JSON হাইজ্যাকিং: সংবেদনশীল অ্যারে ফেরত দেওয়া সাদাসিধা GET এন্ডপয়েন্টগুলি পুরানো ব্রাউজারগুলিতে ক্রস-অরিজিন স্ক্রিপ্ট ট্যাগের মাধ্যমে চুরি করা যেতে পারে; প্রশমনগুলির মধ্যে CSRF সুরক্ষা সহ POST বা একটি নন-JSON সেন্টিনেল দিয়ে উপসর্গ করা অন্তর্ভুক্ত (OWASP: JSON হাইজ্যাকিং)।
  • JSON ইনজেকশন: JSON-কে ডেটা হিসাবে বিবেচনা করুন, কোড হিসাবে নয়; অধ্যবসায়ের সাথে এস্কেপ করুন এবং ইনপুটগুলি যাচাই করুন (OWASP: JSON ইনজেকশন)।

মিডিয়া প্রকার এবং ঐতিহ্য

JSON RFC 4627 (2006)-এর অধীনে আত্মপ্রকাশ করেছে; নিবন্ধিত মিডিয়া প্রকার হল application/json, যার স্পেসিফিকেশন এখন RFC 8259-এর দিকে নির্দেশ করে। JSON প্রতিক্রিয়াগুলিতে "Charset" প্যারামিটারগুলি সাধারণত অপ্রয়োজনীয় কারণ UTF-8 পাবলিক ইন্টারনেটে ডিফল্ট।

উৎপাদনে শক্তিশালী JSON-এর জন্য व्यावहारिक টিপস

  • সর্বত্র UTF-8-এ ডিফল্ট করুন; ইনপুট এবং আউটপুটে UTF-8 ধরে নিন (RFC 8259 §8.1)।
  • বড় পূর্ণসংখ্যার সাথে स्पष्ट হন: যদি একটি ID 2^53−1 অতিক্রম করতে পারে, তবে এটিকে একটি স্ট্রিং হিসাবে পাঠান এবং এটি নথিভুক্ত করুন (MDN: MAX_SAFE_INTEGER)।
  • JSON স্কিমা 2020-12(বাJTDকোডজেন-ভারী স্ট্যাকের জন্য) দিয়ে পেলোডগুলি যাচাই করুন। আপনার API ডক্সের পাশে স্কিমা প্রকাশ করুন (OpenAPI 3.1)।
  • বুদ্ধিমানের সাথে প্যাچ করুন: অপারেশন-স্তরের পার্থক্যের জন্য JSON প্যাচ এবং সহজ নথি-আকৃতির আপডেটের জন্য মার্জ প্যাচ ব্যবহার করুন।
  • বড় আকারে স্ট্রিম করুন: JSON পাঠ্য ক্রম বা NDJSON লগ এবং দীর্ঘজীবী প্রতিক্রিয়াগুলির জন্য বেছে নিন; মিডিয়া প্রকারটি स्पष्ट করুন।
  • বাইনারির জন্য পৌঁছান ( BSON, MessagePack, CBOR, Smile) যখন পাঠ্য বাধা হয়—কিন্তু নিশ্চিত করুন যে উভয় প্রান্ত প্রকারের উপর একমত।

"বন্ধুত্বপূর্ণ JSON" নিয়ে একটি দ্রুত কথা

ডেভেলপাররা প্রায়শই কনফিগে মন্তব্য, ট্রেলিং কমা, বা একক-উদ্ধৃত স্ট্রিং চান। এটি স্ট্যান্ডার্ড JSON-এর বাইরে, কিন্তু JSON5 মানব-সম্পাদিত ফাইলগুলির জন্য একটি ভালভাবে নথিভুক্ত সুপারসেট প্রদান করে। যতক্ষণ না আপনি উভয় প্রান্ত নিয়ন্ত্রণ করেন, ততক্ষণ পাবলিক API-তে JSON5 পাঠানো এড়িয়ে চলুন।


JSON-এর সাফল্য একটি ছোট পৃষ্ঠ এলাকা, ব্যাপক ভাষা সমর্থন, এবং সংলগ্ন মানগুলির একটি বলয়—পয়েন্টার, প্যাচিং, স্কিমা, ক্রম—থেকে আসে যা বিতরিত সিস্টেমের অগোছালো বাস্তবতাগুলিকে কভার করে। মৌলিক বিষয়গুলি (সিনট্যাক্স, এনকোডিং, সংখ্যা) বুঝুন, সঠিক সংলগ্ন মানগুলির উপর ঝুঁকুন, এবং এটি স্ট্যাক এবং পরিষেবা জুড়ে লভ্যাংশ প্রদান করতে থাকবে (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON)।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

JSON কি?

JSON (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) একটি হালকা ডেটা-ইন্টারচেঞ্জ ফর্ম্যাট যা মানুষের পড়া এবং লেখার জন্য সহজ এবং মেশিনের পার্স এবং জেনারেট করার জন্য সহজ। এটি ওয়েব অ্যাপ্লিকেশনগুলিতে ডেটা ট্রান্সমিট করার জন্য ব্যাপকভাবে ব্যবহৃত হয়।

আমার JSON ফর্ম্যাট করার প্রয়োজন কেন?

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

JSON বৈধতা যাচাই কি করে?

JSON বৈধতা যাচাই আপনার JSON স্ট্রিং JSON স্পেসিফিকেশনের সাথে মেনে চলে কিনা তা পরীক্ষা করে। এটি সিনট্যাক্স ত্রুটিগুলি সনাক্ত করে যেমন অনুপস্থিত কমা, বন্ধ না হওয়া বন্ধনী, বা অনুপযুক্ত উদ্ধৃতি, আপনাকে প্রাথমিক পর্যায়ে ত্রুটিগুলি ধরতে সহায়তা করে।

কোড ভিউ এবং ট্রি ভিউয়ের মধ্যে পার্থক্য কী?

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

আমার JSON ডেটা কি নিরাপদ?

হ্যাঁ! সমস্ত JSON ফর্ম্যাটিং এবং বৈধতা যাচাই সম্পূর্ণভাবে আপনার ব্রাউজারে ঘটে। আপনার ডেটা কখনই আপনার কম্পিউটার ছেড়ে যায় না, সম্পূর্ণ গোপনীয়তা এবং নিরাপত্তা নিশ্চিত করে।

আমি কি JSON ফাইল আপলোড করতে পারি?

হ্যাঁ, আপনি 'ফাইল খুলুন' বোতাম ব্যবহার করে JSON ফাইল আপলোড করতে পারেন। টুলটি ফাইলটি পড়বে এবং অবিলম্বে ফর্ম্যাটকৃত আউটপুট প্রদর্শন করবে।

সাধারণ JSON ত্রুটিগুলি কি?

সাধারণ JSON ত্রুটিগুলির মধ্যে রয়েছে: কী-মান জোড়ার মধ্যে অনুপস্থিত কমা, স্ট্রিংগুলির জন্য ডাবল কোটের পরিবর্তে সিঙ্গেল কোট ব্যবহার করা, ট্রেলিং কমা, বন্ধ না হওয়া বন্ধনী বা ব্রেসেস, এবং উদ্ধৃতি ছাড়া কী।

আমি কি ফর্ম্যাটকৃত JSON কপি করতে পারি?

হ্যাঁ, ফর্ম্যাটকৃত JSON আপনার ক্লিপবোর্ডে কপি করতে 'কপি করুন' বোতাম ব্যবহার করুন। এটি পরিষ্কার করা JSON আপনার কোড বা ডকুমেন্টেশনে পেস্ট করার জন্য দরকারী।