C# 是否可以使用JSChemaValidationReader优化json.net模式,以便在流的相同读取中反序列化对象?
我在试一个poc。 是否可以使用JSChemaValidationReader优化json.net模式,以便在流的相同读取中反序列化对象 在另一个世界C# 是否可以使用JSChemaValidationReader优化json.net模式,以便在流的相同读取中反序列化对象?,c#,json.net,schema,jsonschema,C#,Json.net,Schema,Jsonschema,我在试一个poc。 是否可以使用JSChemaValidationReader优化json.net模式,以便在流的相同读取中反序列化对象 在另一个世界 string schemaJson = @"{ 'description': 'A person', 'type': 'object', 'properties': { 'name': {'type': 'string'}, 'hobbies': { 'typ
string schemaJson = @"{
'description': 'A person',
'type': 'object',
'properties': {
'name': {'type': 'string'},
'hobbies': {
'type': 'array',
'items': {'type': 'string'}
}
}
}";
JSchema schema = JSchema.Parse(schemaJson);
using (StreamReader s = File.OpenText(@"c:\bigdata.json"))
using (JSchemaValidatingReader reader = new JSchemaValidatingReader(new JsonTextReader(s)))
{
reader.Schema = schema;
reader.ValidationEventHandler += (sender, args) => { Console.WriteLine(args.Message); };
//Deserialize json while validating
while (reader.Read())
{
}
}
谢谢是,是的子类,因此您可以通过将其传递给以下对象来使用它进行反序列化:
使用(var s=File.OpenText(@“c:\bigdata.json”))
使用(var baseReader=newjsontextreader)
使用(var reader=new-jschemavalidationreader(baseReader))
{
reader.Schema=Schema;
reader.ValidationEventHandler+=(发送方,args)=>{Console.WriteLine(args.Message);};
root=JsonSerializer.CreateDefault()。反序列化(读卡器);
}
演示小提琴
相关文档:。是的,是的子类,因此您可以通过将其传递给以下对象来使用它进行反序列化:
使用(var s=File.OpenText(@“c:\bigdata.json”))
使用(var baseReader=newjsontextreader)
使用(var reader=new-jschemavalidationreader(baseReader))
{
reader.Schema=Schema;
reader.ValidationEventHandler+=(发送方,args)=>{Console.WriteLine(args.Message);};
root=JsonSerializer.CreateDefault()。反序列化(读卡器);
}
演示小提琴
相关文件:
using (var s = File.OpenText(@"c:\bigdata.json"))
using (var baseReader = new JsonTextReader(s))
using (var reader = new JSchemaValidatingReader(baseReader))
{
reader.Schema = schema;
reader.ValidationEventHandler += (sender, args) => { Console.WriteLine(args.Message); };
root = JsonSerializer.CreateDefault().Deserialize<RootObject>(reader);
}