我正在尝试将现有(和正在工作的)客户端 jQuery 验证模式移动到 JSONSchema,以允许自己在客户端和服务器上验证任意 JSON。
我的应用程序本质上是一堆巨大的表单,其中包含许多复杂的逻辑,根据用户对其他问题的回答来确定应该问哪些问题。每个表单都有 200 多个字段。
现在我只做客户端验证,大约 99% 的时间都运行良好。浏览器问题已经出现过几次,但都不是灾难性的。话虽如此,我想做服务器端验证(!)。
在阅读了 JSONSchema 草案并浏览了一些 v3 实现之后,似乎我可能会丢失我的应用程序所依赖的一些更复杂的规则。我想确保在向任何方向移动太远之前我没有遗漏任何东西。
一些例子:
“如果 x == 10,则 y 是必需的,否则它是可选的”
10 可以是文字值、枚举等,但我需要能够引用同一结构中的另一个字段并保证它的值不仅存在,而且等同于特定类型/值。
我认为这在 JSONSchema list 上的这个线程中得到了解决。
“如果 x = 今天的日期,y = 明天的日期,那么 x > y”
此逻辑将用于确保“开始”日期在“结束”日期之前。
从我所看到的情况来看,没有这样的事情,我能看到的唯一方法是将一个新的评估过的 JSON 块作为模式传递。
我发现最能满足上述需求的是CERNY。
如果我叫错了树,请告诉我。我还研究了在客户端和服务器上运行的backbone.js。
tl;博士;
我想为大型复杂表单维护一组验证规则,并将这些验证规则应用于客户端和服务器端的任意 JSON 文档。