验证JsonSchema在Json.NET中是否包含有效的模式

时间:2013-08-14 05:35:45

标签: c# .net json json.net jsonschema

我正在尝试检测JsonSchema是否包含有效架构。据我所知,Json.NET没有验证JSON模式的方法。

您似乎可以使用完全无效的架构创建一个JsonSchema,它不会抱怨,如下所示:

var invalidSchema = JsonSchema.Parse(@"{ ""title"": { ""Invalid"": ""Invalid"" } }");

然后,您可以继续针对无效架构验证JObject,您将得到回复。根据已发布的draft-03自我描述架构(我使用JSON Schema Lint检查),上述“架构”无效。

我试图解析draft-03以验证其他模式,但我没有做到这一点。我尝试解析时遇到异常:

Newtonsoft.Json.JsonReaderException was unhandled by user code
  HResult=-2146233088
  Message=Exception JSON schema type string token, got StartObject. Path 'properties.type.items.type[1]', line 11, position 6.
  Source=Newtonsoft.Json
  LineNumber=11
  LinePosition=6
  Path=properties.type.items.type[1]
  StackTrace:
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessType()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessSchemaProperty(String propertyName)
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.BuildSchema()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessItems()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessSchemaProperty(String propertyName)
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.BuildSchema()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessProperties()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.ProcessSchemaProperty(String propertyName)
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.BuildSchema()
       at Newtonsoft.Json.Schema.JsonSchemaBuilder.Parse(JsonReader reader)
       at Newtonsoft.Json.Schema.JsonSchema.Read(JsonReader reader, JsonSchemaResolver resolver)
       at Newtonsoft.Json.Schema.JsonSchema.Parse(String json, JsonSchemaResolver resolver)
       at Newtonsoft.Json.Schema.JsonSchema.Parse(String json)
  InnerException: 

0 个答案:

没有答案