JSON Schema (2020-12, 2019-09, draft 7) অনুযায়ী JSON যাচাই করুন, প্রতিটি ত্রুটির অবস্থানসহ
আপনার ব্রাউজারে চলে। আপনি যা লেখেন তা কোথাও পাঠানো হয় না। যাচাই করা হয়েছে 16 অক্টোবর, 2026।একটি JSON Schema ভ্যালিডেটর যাচাই করে যে একটি JSON ডকুমেন্টের গঠন স্কিমার বর্ণনার সঙ্গে মেলে কি না: সঠিক টাইপ, আবশ্যক প্রপার্টি, সীমার মধ্যে মান এবং কোনো অপ্রত্যাশিত কী নেই। এটি 2020-12, 2019-09, 7, 6 ও 4 ড্রাফট সমর্থন করে, অফিসিয়াল টেস্ট স্যুটের 1,652টি কেস পাস করে এবং প্রতিটি ভুল মান তার পাথ ও লাইন দিয়ে দেখিয়ে দেয়।
এই পৃষ্ঠাটি ইংরেজি মূল লেখা থেকে যন্ত্রের সাহায্যে অনুবাদ করা হয়েছে। এই অনুবাদটি এখনও কোনো মানুষ পর্যালোচনা করেননি, তাই ইংরেজি সংস্করণটিকেই নির্ভরযোগ্য ধরুন। ইংরেজি মূল লেখাটি পড়ুন
স্কিমা প্যানেলে স্কিমা এবং ডেটা প্যানেলে JSON পেস্ট করুন, অথবা একটি উদাহরণ দেখুন-এ ক্লিক করুন।
ফলাফল পড়ুন: বৈধ, অথবা ত্রুটির একটি তালিকা, প্রতিটিতে মানের পাথ এবং কী ভুল তা লেখা থাকে।
কোনো ত্রুটিতে ক্লিক করলে ডেটা প্যানেলে কার্সর সেই মানে চলে যায়; সেটি ঠিক করুন, আর টাইপ করার সঙ্গে সঙ্গে তালিকা আপডেট হয়।
ইমেল, তারিখ-সময়, URI এবং অন্যান্য প্রচলিত ফরম্যাটও পরীক্ষা করতে ফরম্যাট যাচাই করুন চালু করুন।
বৈধ JSON দেখতে কেমন হবে তা বর্ণনা করার মানক উপায় হলো JSON Schema; OpenAPI, ফর্ম বিল্ডার, কনফিগ ফাইল এবং ডেটা পাইপলাইন এটি ব্যবহার করে। একটি স্কিমা ও একটি ডকুমেন্ট পেস্ট করুন, আর টাইপ করার সঙ্গে সঙ্গে ফলাফল আপডেট হবে।
কী যাচাই করা হয়। ভ্যালিডেশন ভোকাবুলারির প্রতিটি অ্যাসারশন: type, enum, const, সংখ্যার সীমা ও multipleOf, স্ট্রিংয়ের দৈর্ঘ্য ও pattern, অ্যারের দৈর্ঘ্য, uniqueItems, contains, অবজেক্টের আকার, required, dependentRequired, এবং অ্যাপ্লিকেটর properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not ও if/then/else। $ref রেফারেন্স স্কিমার ভেতরের JSON পয়েন্টার, $defs, definitions, $id ও $anchor অনুসরণ করে।
কোন ড্রাফট। ড্রাফট নেওয়া হয় $schema থেকে, আর স্কিমায় কোনোটির নাম না থাকলে 2020-12 ধরা হয়; আপনি এটি বদলে দিতে পারেন। পার্থক্যগুলো গুরুত্বপূর্ণ: draft 7-এ অ্যারেসহ items প্রতিটি অবস্থান যাচাই করে এবং $ref-এর পাশের কীওয়ার্ড উপেক্ষা করা হয়; 2020-12-এ অবস্থানগুলো prefixItems-এ চলে যায় এবং $ref তার পাশের কীওয়ার্ডগুলোর সঙ্গে মিলে কাজ করে।
ফরম্যাট। 2019-09 থেকে format একটি অ্যানোটেশন, যাচাই নয়। তবুও email, date-time, date, time, uri, uuid, ipv4, ipv6 ও hostname পরীক্ষা করতে ফরম্যাট যাচাই করুন চালু করুন, যেমনটা বেশিরভাগ মানুষ আশা করেন।
যে ত্রুটি নিয়ে কাজ করা যায়। প্রতিটি ত্রুটি ভুল মানের পাথ দেয়, যেমন /tags/1, ডেটা প্যানেলে তার লাইন এবং যে নিয়ম ভঙ্গ হয়েছে। এতে ক্লিক করলে কার্সর সেই মানে পৌঁছে যায়।
যা এটি করে না। unevaluatedProperties, unevaluatedItems ও $dynamicRef মূল্যায়ন করা হয় না, এবং অন্য সার্ভারের কোনো স্কিমার দিকে নির্দেশ করা $ref আনা হয় না। কোনো স্কিমা এগুলোর কোনোটি ব্যবহার করলে পেজটি তা জানিয়ে দেয়, চুপচাপ ডেটা পাস করিয়ে দেয় না।
স্কিমা তৈরি। এর বদলে একটি নমুনা পেস্ট করুন, তা থেকে একটি প্রাথমিক স্কিমা লেখা হবে, যা আরও কড়া করার জন্য প্রস্তুত।
ভ্যালিডেটরটি অফিসিয়াল JSON-Schema-Test-Suite দিয়ে পরীক্ষিত। সবকিছু আপনার ব্রাউজারে চলে; আপনি যা পেস্ট করেন তার কিছুই কোথাও পাঠানো হয় না।
স্কিমা প্যানেলে স্কিমা এবং ডেটা প্যানেলে JSON ডকুমেন্ট পেস্ট করুন। ফলাফল সঙ্গে সঙ্গে দেখা যায়: বৈধ, অথবা ত্রুটির একটি তালিকা, প্রতিটিতে ভুল মানের পাথ, যেমন /items/2/price, এবং ভঙ্গ হওয়া নিয়ম, যেমন minimum 0, লেখা থাকে। ডেটা বা স্কিমা ঠিক করুন, আর টাইপ করার সঙ্গে সঙ্গে তালিকা আপডেট হবে।
নতুন স্কিমার জন্য 2020-12 ব্যবহার করুন: এটিই বর্তমান স্পেসিফিকেশন এবং OpenAPI 3.1 এটি ব্যবহার করে। পুরোনো টুল ও লাইব্রেরিতে draft 7 এখনও প্রচলিত। $schema-তে সংস্করণ উল্লেখ করুন, যেমন https://json-schema.org/draft/2020-12/schema, কারণ অ্যারে টাপল, $ref ও dependencies বিভিন্ন সংস্করণে ভিন্নভাবে কাজ করে।
additionalProperties-কে false করলে properties-এ তালিকাভুক্ত নয় এবং patternProperties-এর সঙ্গে মেলে না এমন যেকোনো প্রপার্টি ত্রুটি হিসেবে গণ্য হয়। ফলে email-এর বদলে emial-এর মতো টাইপো উপেক্ষিত না হয়ে ধরা পড়ে। অন্য সাবস্কিমায় allOf দিয়ে যোগ করা প্রপার্টি দেখা যায় না, যা প্রায়ই অবাক করে; সেগুলো একই স্কিমায় তালিকাভুক্ত করুন।
2019-09 থেকে format কীওয়ার্ডটি ডিফল্টভাবে কেবল একটি অ্যানোটেশন, তাই ভ্যালিডেটরগুলোর এটি যাচাই করার বাধ্যবাধকতা নেই। email, date-time, date, time, uri, uuid, ipv4, ipv6 ও hostname পরীক্ষা করতে এখানে ফরম্যাট যাচাই করুন চালু করুন। কোডে Ajv-এর মতো লাইব্রেরিতেও ফরম্যাট যাচাই আলাদাভাবে চালু করতে হয়।
required ঠিক কোন কোন প্রপার্টি থাকতেই হবে তার নাম দেয়, যেমন id ও email, আর minProperties শুধু সেগুলো গোনে: minProperties 2 যেকোনো দুটি কী গ্রহণ করে। properties-এ আছে কিন্তু required-এ নেই এমন প্রপার্টি ঐচ্ছিক, তবে থাকলে সেটিকে তবুও নিজের স্কিমার সঙ্গে মিলতে হবে।
হ্যাঁ। স্কিমা তৈরি করুন-এ যান এবং ডেটা প্যানেলে একটি নমুনা পেস্ট করুন: একটি 2020-12 স্কিমা লেখা হবে, যেখানে প্রতিটি প্রপার্টির টাইপ দেওয়া থাকবে এবং সব রেকর্ডে থাকা কীগুলো required হিসেবে চিহ্নিত হবে। একটি নমুনা সীমা, ফরম্যাট বা অনুমোদিত মান দেখাতে পারে না, তাই এর ওপর নির্ভর করার আগে minimum, format ও enum হাতে যোগ করুন।
হার ও নিয়ম বদলায়; কোনো অঙ্কের ওপর নির্ভর করার আগে সূত্রটি দেখে নিন।
এখনও আটকে আছেন? JSON Schema ভ্যালিডেটর সম্পর্কে প্রশ্ন করুন আর যিনি জানেন তিনিই উত্তর দিতে পারেন। কোনো অ্যাকাউন্ট লাগবে না।