【发布时间】:2017-05-24 07:34:16
【问题描述】:
我正在尝试使用 json shema 来验证 C# api 中的传入对象参数。 这是我的 api 原型:
void BuildSqlQueryFromSegment(JoinDefinition jsonDef);
JsonDefinition 是一个复杂的对象,有很多属性。属性值是相互依赖的,这就是为什么不能在这里使用像Required、Min、Max这样的简单验证属性。
一种解决方案是传递一个字符串而不是类型对象:
void BuildSqlQueryFromSegment(string jsonDef) {
// Check shema here, using Json.NET Schema
// if ok, deserialize and get the JsonDefition object instance
}
我可以很容易地实现这个,但我发现这个解决方案并不聪明。
我正在寻找的是这样的:
void BuildSqlQueryFromSegment([SchemaValidation('MySchemaResourceHere')] JoinDefinition jsonDef);
这种属性存在吗?如果没有,我该如何实施?我如何处理传入的响应 json 字符串来检查架构?
感谢您的帮助。
【问题讨论】:
-
newtonsoft 的 json.net 库有一个模式验证器,但它不是免费的。您可能有更多关于newtonsoft.com/jsonschema 的信息。不过,我从未使用过它,所以我不知道它是否能满足您的需求。
标签: c# json jsonschema