0
Jsonの検証パターンを調べて、Json.Net Schema(v3.0.3)で予期せぬものに遭遇しました。Json.Netスキーマ検証で重複したプロパティが検出されるべきです
つまり、.net型からスキーマを生成し、そのプロパティの1つを含むデータ文字列を2回フィードすると、バリデータが例外をスローすることが予想されます。しかし、それは最後の勝利の方法で複数の値を受け入れます。複数の値を持つデータを拒否させる方法はありますか?
例は、これは私のタイプである:
class TestObject {
[Required]
public int? Id { get; set; }
public string Name { get; set; }
public bool? Flag { get; set; }
}
が、これは私がそのタイプを使用して一緒に入れ、テストのコードである(データは二回nameプロパティが含まれていることに注意してください):
var jsonString="{'Id': 111, 'Name': 'SomeValue', 'Flag': true, 'Name':'IgnoredValue'}";
var reader=new JSchemaValidatingReader(new JsonTextReader(new StringReader(jsonString))) {
Schema=new JSchemaGenerator() { DefaultRequired=Required.Default }.Generate(typeof(TestObject))
};
// Act
try {
var result=JsonSerializer.Create().Deserialize<TestObject>(reader);
Assert.Fail("Exception expected.");
}
注:この使用パターンは、関係する他のすべてのテストケースを通過させます。