मैं निम्नलिखित Json Schema
उदाहरण को दोहराने के लिए प्रयास कर रहा हूँ, Newtonsoft.Json.Schema
का उपयोग कर कोड में स्कीमा को परिभाषित करते हुए:मैं कैसे करूँ कोड में json स्कीमा परिभाषाएँ युक्त, परिभाषित
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"address": {
"type": "object",
"properties": {
"street_address": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" }
},
"required": ["street_address", "city", "state"]
}
},
"type": "object",
"properties": {
"billing_address": { "$ref": "#/definitions/address" },
"shipping_address": { "$ref": "#/definitions/address" }
}
इस रूप में मुझे मिल गया है के रूप में करीब है अब तक। (उदाहरण एफ # में है, लेकिन बस के रूप में अच्छी तरह से सी # में हो सकता है।)
कोड:
open Newtonsoft.Json.Schema
open Newtonsoft.Json.Linq
let makeSchema =
let addressSchema = JSchema()
addressSchema.Properties.Add("street_address", JSchema(Type = Nullable(JSchemaType.String)))
addressSchema.Properties.Add("city", JSchema(Type = Nullable(JSchemaType.String)))
addressSchema.Properties.Add("state", JSchema(Type = Nullable(JSchemaType.String)))
addressSchema.Required.Add "street_address"
addressSchema.Required.Add "city"
addressSchema.Required.Add "state"
let schema = JSchema()
schema.Properties.Add("billing_address", addressSchema)
schema.Properties.Add("shipping_address", addressSchema)
schema
आउटपुट:
{
"properties": {
"billing_address": {
"properties": {
"street_address": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"street_address",
"city",
"state"
]
},
"shipping_address": {
"$ref": "#/properties/billing_address"
}
}
}
आप देख सकते हैं, दो पते का केवल एक ही परिभाषित किया गया है किसी अन्य स्कीमा के संदर्भ का उपयोग करके, और पता स्कीमा "परिभाषाओं" की बजाय "गुण" में है। "परिभाषाओं" में एक स्कीमा को परिभाषित करने और इसे कहीं और संदर्भित करने की चाल क्या है?
बहुत बहुत धन्यवाद! हम इसके करीब थे लेकिन op_Implicit हमें लाइन पर धक्का दिया था। मैंने एक समस्या लॉग कर दी है: https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/60। जब मैंने इसका परीक्षण किया है तो जवाब के रूप में चिह्नित किया जाएगा। (मुझे यकीन है कि यह ठीक है।; -) – Kit
हमारे "असली दुनिया" कोड में इस दृष्टिकोण का उपयोग किया और यह एक आकर्षण की तरह काम किया। एक बार फिर धन्यवाद! – Kit
मदद की खुशी है –