我们正在开发一个基于 .Net 核心的 web api 应用程序,为此我们需要验证传入的请求主体,该请求主体的JSON
格式是基于 c# 的类型。我们此时正在评估NJsonSchema
库以查看它是否会引发重复属性错误。但看起来它不支持此验证。我们还检查了JSON
模式验证器,NewtonSoft
但似乎它也不支持重复的属性验证。
下面是NJsonSchema
我们使用的最小化代码 -
using NewtonSoft.Json;
public class MyRequest
{
[JsonRequired]
[JsonProperty("name")]
public string Name { get; set; }
}
当我们像这样传递一个 JSON 对象时 -
{"name":"abc","name":"xyz"}
我们需要我们的 JSON 验证器来抛出错误,duplicate property
我们的示例测试如下所示 -
[Test]
public async System.Threading.Tasks.Task SchemaValidation_WithDuplicateProperty_Async()
{
var jsonString = await File.ReadAllTextAsync("Data//JsonWithDuplicateProperty.json");
var schema = JsonSchema.FromType<MyRequest>();
var errors = schema.Validate(jsonString);
Assert.That(errors.Count(), Is.EqualTo(1));
}
所以我的问题 - 过去有没有人这样做过?或者是否有任何库为重复属性.net core
提供JSON
验证和/或可以使用NJsonSchema
or来完成NewtonSoft
。