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