我想访问架构中的定义,以获取定义的命名。我正在使用newtonsoft.json v11.01
我正在为jsonschema构建C#转换器来制作语法并进行编译,以便在运行时获取对象的键入版本。
{
"$id": "https://example.com/arrays.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "xml remarks",
"type": "object",
"properties": {
"fruits": {
"type": "array",
"items": {
"type": "object",
"title": "fruit",
"required": ["naam"],
"properties": {
"naam": {
"type": "string",
"description": "The name of the fruit."
}
}
}
},
"vegetables": {
"type": "array",
"items": { "$ref": "#/definitions/veggie" }
}
},
"definitions": {
"veggie": {
"type": "object",
"required": [ "veggieName", "veggieLike" ],
"properties": {
"veggieName": {
"type": "string",
"description": "The name of the vegetable."
},
"veggieLike": {
"type": "boolean",
"description": "Do I like this vegetable?"
}
}
}
}
}
在架构中创建了一个名称素食的参考。这在物业蔬菜中使用,并参考。
JSON模式在根对象上包含一个定义,但在属性元素上没有它。在属性元素上,没有什么可以指向正确的定义。
如何找到适合该属性的正确定义?
一般而言,为了解决 json-pointer
($ ref是" ure-reference", #
后的零件是" json-pointer"),您需要可以访问JSON文档的根。
因此,如果您当前的函数仅获取指向"属性"部分的参数,则需要给该函数一个指向文档根的参数。
(当您使用由一个以上文件组成的架构时,它会变得更加复杂;然后,您需要第二个参数,指向所有模式文档的根源)
这是解释JSON-SCHEMA文件的撰写软件中最困难的部分之一,尤其是如果您的语言/库不支持内置的JSON-Pointer-在这种情况下,您需要自己写它。