我即将编写一个生成器,它将一个起始目录作为输入,并从该位置打开每个文件夹并创建连接的json模式。
File 1: ValidResponse.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ValidResponse",
"type": "object",
"properties": {
"Head": {
"type": "object",
"CommonResponse": {"$ref":"CommonHeader.json"},
"required":["CommonResponse"]
},
"Body": {
"type": "object"
}
},
"additionalProperties": false,
"required":["Head","Body"]
}
File 2: CommonHeader.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "CommonHeader",
"type": "object",
"properties": {
"RequestArguments": {
"type": "object",
"properties": {
"DataCollection": {
"type": "string"
},
"DeviceClass": {
"type": "string"
},
"Scope": {
"type": "string"
},
"DeviceId": {
"type": "string"
}
},
"additionalProperties": false
},
"Status": {
"type": "object",
"properties": {
"Code": {
"type": "integer"
},
"Reason": {
"type": "string"
},
"UserMessage": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"Code",
"Reason",
"UserMessage"
]
},
"Timestamp": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"RequestArguments",
"Status",
"Timestamp"
]
}
现在我想要这个2文件是,加载文件1 - ValidResponse作为架构,在“$ ref ...”它应该加载文件2 - CommonHeader,因此创建一个大的json架构,同时能够仍然可以自己操作文件,而不必担心破坏整个代码。
我已经在使用Newtonsoft Nugget Package并且可以验证json架构,但引用部分只是不想工作
_jsonValidResponse = File.ReadAllText(_baseUri + @"\ObjectStructureOfValidResponse.json");
_jsonString = File.ReadAllText(_baseUri+@"\jsonstring.json");
JObject jsonString = JObject.Parse(_jsonString);
JSchema jsonSchemaValidResponse = JSchema.Parse(_jsonValidResponse);
jsonString.IsValid(jsonschemaValidResponse)
这里的“魔法”是什么让这个引用在运行时加载?