আপনার পরিস্থিতির উপর নির্ভর করে কয়েকটি পৃথক পদ্ধতি রয়েছে। শর্তসাপেক্ষে একটি ক্ষেত্রের প্রয়োজনের জন্য আমি চারটি ভিন্ন উপায় সম্পর্কে ভাবতে পারি।
নির্ভরতা
dependencies
শব্দ একটি শর্তাধীন তারতম্য আছে required
শব্দ। পূর্বাভাস সম্পত্তি dependencies
, যদি সম্পত্তিটি বৈধতাপ্রাপ্ত জেএসওএন-তে উপস্থিত থাকে তবে সেই কীটির সাথে সম্পর্কিত স্কিমাটিও বৈধ হতে হবে। যদি "foo" সম্পত্তি উপস্থিত থাকে তবে "বার" সম্পত্তিটি প্রয়োজন
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" }
},
"dependencies": {
"foo": { "required": ["bar"] }
}
}
এখানে একটি সংক্ষিপ্ত ফর্মও রয়েছে যদি স্কিমাতে কেবল required
কীওয়ার্ড থাকে।
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" }
},
"dependencies": {
"foo": ["bar"]
}
}
জড়িত
যদি আপনার অবস্থা কোনও ক্ষেত্রের মানের উপর নির্ভর করে তবে আপনি বোঝা নামক একটি বুলিয়ান লজিক ধারণাটি ব্যবহার করতে পারেন। "এ বোঝায় বি" এর কার্যকর অর্থ, যদি এ সত্য হয় তবে বি অবশ্যই সত্য হতে হবে। প্রভাব "! এ বা বি" হিসাবেও প্রকাশ করা যেতে পারে। হয় "foo" সম্পত্তি "বার" এর সমান হয় না, বা "বার" সম্পত্তি প্রয়োজন । অথবা, অন্য কথায়: "foo" সম্পত্তি যদি "বার" এর সমান হয়, তবে "বার" সম্পত্তিটি প্রয়োজন
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" }
},
"anyOf": [
{
"not": {
"properties": {
"foo": { "const": "bar" }
},
"required": ["foo"]
}
},
{ "required": ["bar"] }
]
}
যদি "foo" "বার" এর সমান না হয়, #/anyOf/0
মিল এবং বৈধতা সফল হয়। যদি "foo" "বার" এর সমান #/anyOf/0
হয় , ব্যর্থ হয় এবং বৈধতা সফল হওয়ার #/anyOf/1
জন্য অবশ্যই বৈধ হতে হবে anyOf
।
এনাম
যদি আপনার শর্তসাপেক্ষ একটি এনামের উপর ভিত্তি করে থাকে তবে এটি আরও কিছুটা সোজা এগিয়ে। "ফু" "বার" বা "বাজ" হতে পারে। যদি "foo" "বার" এর সমান হয়, তবে "বার" প্রয়োজন। যদি "ফু" সমান "বাজ" হয়, তবে "বাজ" প্রয়োজন।
{
"type": "object",
"properties": {
"foo": { "enum": ["bar", "baz"] },
"bar": { "type": "string" },
"baz": { "type": "string" }
},
"anyOf": [
{
"properties": {
"foo": { "const": "bar" }
},
"required": ["bar"]
},
{
"properties": {
"foo": { "const": "baz" }
},
"required": ["baz"]
}
]
}
যদি-তবে-অন্যথায়
একটি অপেক্ষাকৃত নতুন উপরন্তু তাদেরকে JSON স্কিমা (খসড়া-07) যোগ if
, then
এবং else
কীওয়ার্ড। যদি "foo" সম্পত্তি "বার" এর সমান হয়, তবে "বার" বৈশিষ্ট্যটি প্রয়োজনীয়
{
"type": "object",
"properties": {
"foo": { "type": "string" },
"bar": { "type": "string" }
},
"if": {
"properties": {
"foo": { "const": "bar" }
},
"required": ["foo"]
},
"then": { "required": ["bar"] }
}
সম্পাদনা 12/23/2017: ইমপ্লিকেশন বিভাগ আপডেট হয়েছে এবং যদি-তবে-অন্য বিভাগ যুক্ত করা হয়েছে।
সম্পাদনা 06/04/2018: যদি-তবে-অন্যথায় বাগফিক্স enum
এবং ব্যবহার করতে সিঙ্গলটন গুলি আপডেট করুন const
।