5
के तहत JSON डेटा सत्यापन, मैं रूबी मणि जेसन-स्कीमा के साथ कुछ जेसन डेटा को सत्यापित करने की कोशिश कर रहा हूं।जेएसओएन-स्कीमा
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "User",
"description": "A User",
"type": "object",
"properties": {
"name": {
"description": "The user name",
"type": "string"
},
"e-mail": {
"description": "The user e-mail",
"type": "string"
}
},
"required": ["name", "e-mail"]
}
और निम्नलिखित json डेटा::
मैं निम्न स्कीमा है,
{
"name": "John Doe",
"e-mail": "[email protected]",
"username": "johndoe"
}
और JSON :: Validator.validate, इनपुट के रूप में इस डेटा का उपयोग कर सच देता है।
क्या यह गलत नहीं होना चाहिए क्योंकि उपयोगकर्ता नाम स्कीमा पर निर्दिष्ट नहीं है? अपेक्षा के अनुरूप
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "User",
"description": "A User",
"type": "object",
"properties": {
"name": {
"description": "The user name",
"type": "string"
},
"e-mail": {
"description": "The user e-mail",
"type": "string"
}
},
"required": ["name", "e-mail"],
"additionalProperties": false
}
अब मान्यता false
लौटना चाहिए:
ध्यान दें कि यह विस्तार करने के लिए अपनी क्षमता को प्रतिबंधित करता है बाद में प्रारूप, क्योंकि सभी अतिरिक्त गुणों पर प्रतिबंध लगा दिया गया है। – cloudfeet
@cloudfeet किस मामले में आप स्कीमा भी बढ़ाते हैं। –
मेरा मतलब मूल वर्ग को संशोधित किए बिना विस्तार करना था - उदा। आपकी तीसरी पार्टी आपके प्रारूप को विस्तारित करती है, या आप अपनी कंपनी में किसी अन्य व्यक्ति द्वारा लिखे गए प्रारूप को विस्तारित करते हैं जो अजीब और पुनर्विक्रय है। – cloudfeet