JSON Schema ভ্যালিডেটর

JSON ডেটা JSON Schema সংজ্ঞার বিপরীতে ভ্যালিডেট করুন। পথ-সহ বিস্তারিত ত্রুটি রিপোর্ট পান। সব প্রক্রিয়াকরণ আপনার ব্রাউজারেই হয়।

তাৎক্ষণিক ভ্যালিডেশন ত্রুটির বিবরণ ক্লায়েন্ট-সাইড প্রক্রিয়াকরণ

JSON Schema ভ্যালিডেটর ব্যবহারের পদ্ধতি

1

Schema লিখুন

প্রত্যাশিত কাঠামো বর্ণনা করে এমন আপনার JSON Schema সংজ্ঞায়িত করুন।

2

ডেটা লিখুন

schema-র বিপরীতে যে JSON ডেটা ভ্যালিডেট করতে চান তা পেস্ট করুন।

3

ভ্যালিডেট করুন

ভ্যালিডেট ক্লিক করুন এবং কোনো ত্রুটির জন্য ফলাফল পর্যালোচনা করুন।

JSON Schema কী?

JSON Schema হলো একটি শব্দকোষ যা দিয়ে আপনি JSON ডকুমেন্ট অ্যানোটেট ও ভ্যালিডেট করতে পারেন। এটি নির্দিষ্ট অ্যাপ্লিকেশনের জন্য কোন JSON ডেটা প্রয়োজন এবং তার সাথে কীভাবে ইন্টারঅ্যাক্ট করতে হবে তার একটি চুক্তি দেয়। JSON Schema ভ্যালিডেশন, ডকুমেন্টেশন ও মক ডেটা তৈরিতে ব্যবহৃত হয়।

মূল বৈশিষ্ট্য

টাইপ ভ্যালিডেশন

টাইপ ভ্যালিডেট করুন: string, number, integer, boolean, array, object, null

সীমাবদ্ধতা

সর্বনিম্ন/সর্বোচ্চ দৈর্ঘ্য, পরিসর, প্যাটার্ন, আবশ্যক ফিল্ড ইত্যাদি

কাঠামো সংজ্ঞায়ন

নেস্টেড অবজেক্ট, অ্যারে ও জটিল ডেটা কাঠামো সংজ্ঞায়িত করুন

সাধারণ জিজ্ঞাসা

JSON Schema-র কোন সংস্করণ সমর্থিত?

এই টুল Ajv লাইব্রেরির মাধ্যমে JSON Schema Draft-07, Draft 2019-09 ও Draft 2020-12 সমর্থন করে। সবচেয়ে সাধারণ schema বৈশিষ্ট্যগুলো সমর্থিত।

আমি কি নেস্টেড অবজেক্ট ভ্যালিডেট করতে পারি?

হ্যাঁ! JSON Schema গভীরভাবে নেস্টেড অবজেক্ট ও অ্যারে সমর্থন করে। আপনি যেকোনো নেস্টিং স্তরে properties ও items সংজ্ঞায়িত করতে পারেন, প্রতিটি ফিল্ডের জন্য আলাদা ভ্যালিডেশন নিয়মসহ।

আমার schema অবৈধ হলে কী হয়?

টুল প্রথমে যাচাই করে যে আপনার schema নিজেই বৈধ JSON Schema কিনা। schema-তে ত্রুটি থাকলে, ডেটা ভ্যালিডেট করার চেষ্টার আগেই সেগুলো রিপোর্ট করা হয়।

কোন কোন JSON Schema কীওয়ার্ড সবচেয়ে বেশি ব্যবহৃত হয়?

type (string, number, object, array, boolean, null), নেস্টেড schema-সহ properties, বাধ্যতামূলক কী-এর তালিকা required, নির্দিষ্ট মানের সেটের জন্য enum, regex-সীমিত স্ট্রিংয়ের জন্য pattern, আর পরিসর পরীক্ষা minimum/maximum ও minLength/maxLength। additionalProperties: false অবজেক্টকে বাড়তি কী-এর বিরুদ্ধে কঠোর করে। এগুলো মিলেই API ভ্যালিডেশন নিয়মের বড় অংশ কভার করে।

date-time বা email-এর মতো format কীওয়ার্ড কীভাবে আচরণ করে?

আধুনিক JSON Schema-তে format ডিফল্টভাবে একটি অ্যানোটেশন, স্বয়ংক্রিয় অ্যাসারশন নয় - ভ্যালিডেটর কনফিগার করলেই কেবল তা প্রয়োগ করে, যা 2020-12 স্পেক আলাদা format-assertion শব্দকোষ দিয়ে স্পষ্ট করেছে। নিশ্চিত প্রয়োগ দরকার হলে pattern বা কাস্টম কীওয়ার্ড ব্যবহার করুন, অন্যথায় format-কে ইন্টারঅপারেবিলিটি মেটাডেটা হিসেবে ভাবুন।

$ref কী এবং schema পুনর্ব্যবহার কীভাবে কাজ করে?

#/$defs/address নির্দেশকারী $ref, $defs-এর অধীনে একটি schema খণ্ড রেফারেন্স করে এবং যেখানে ব্যবহৃত হয় সেখানে তার বিপরীতে ভ্যালিডেট করে - এটিই ডিডুপ্লিকেশন কৌশল। Draft 2020-12 পুরোনো definitions-এর নাম বদলে $defs করেছে এবং কমেন্ট ট্রির মতো রিকার্সিভ কাঠামোর জন্য $dynamicRef ফরমালাইজ করেছে। রেফারেন্স বাইরের ডকুমেন্টেও নির্দেশ করতে পারে, তবে লোকালি বান্ডল করা বেশি প্রচলিত।

oneOf, anyOf এবং allOf-এর মধ্যে পার্থক্য কী?

allOf-এর জন্য প্রতিটি সাবস্কিমা ভ্যালিড হতে হবে - একটি ছেদ, বেস schema-র সাথে অতিরিক্ত সীমাবদ্ধতা যোগ করতে ব্যবহৃত হয়। anyOf-এর জন্য অন্তত একটি লাগবে - একটি ইউনিয়ন, পলিমরফিক পেলোডের জন্য। oneOf-এর জন্য ঠিক একটি লাগবে; দুটি বা শূন্য সাবস্কিমা ভ্যালিড হলে ব্যর্থ হয়, যা মানুষ যতটা আশা করে তার চেয়ে কঠোর এবং ওভারল্যাপিং schema-য় অপ্রত্যাশিত ত্রুটির সাধারণ কারণ।

draft-07 আর 2020-12-এর মধ্যে কী বদলেছে?

2020-12 স্পেসিফিকেশনকে আলাদাভাবে-সক্রিয়যোগ্য শব্দকোশে ভাগ করেছে (validation, annotation, format-assertion), definitions-এর নাম বদলে $defs করেছে, exclusiveMinimum-কে সাধারণ সংখ্যায় সরল করেছে, আর পুরোনো items কীওয়ার্ডের জায়গায় prefixItems ও items এনেছে। বেশিরভাগ টুলিং দুটোই সমর্থন করে; draft-07 এখনো সবচেয়ে ব্যাপকভাবে স্থাপিত, তবে 2020-12 বর্তমান প্রকাশিত মান।

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}