2016-10-28 1 views
1

私はpocを試しています。 JSchemaValidatingReaderでjson.netスキーマを最適化すると、同じストリームの読み込みでオブジェクト内で逆シリアル化できますか?JSchemaValidatingReaderでjson.netスキーマを最適化すると、同じストリームの読み込みでオブジェクト内で逆シリアル化できますか?

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); 
} 

関連資料:あなたはJsonSerializer.Deserialize(JsonReader)に渡すことでデシリアライズするためにそれを使用できるようにotherworldで

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()) 
    { 
    } 
} 

おかげ

答えて

関連する問題