【问题标题】:JSON Schema: Element is valid based on another element's valueJSON Schema:元素基于另一个元素的值有效
【发布时间】:2013-08-13 22:40:58
【问题描述】:

我正在尝试根据 json 对象的两个元素之间的关系来验证 json 架构。

根据 JSON Schema 草案:使用相互依赖的关键字来验证 json 元素:

4.2。相互依赖的关键字

为了验证实例,一些关键字受 其他关键字的存在(或不存在)。在这种情况下,所有这些 关键字将被分组在同一部分中。

http://json-schema.org/latest/json-schema-validation.html#anchor9

我的问题是草稿并没有真正说明如何编写架构以提供验证。我需要做的是验证这样的 json:

{ a: 1, b: 2}

当 a 总是小于或等于 b 时。这可以做到吗?如何编写架构?

谢谢

【问题讨论】:

    标签: json validation jsonschema


    【解决方案1】:

    规范的该部分意味着(例如)"additionalItems" 关键字的行为取决于 "items" 关键字,因此这两个关键字在规范中彼此相邻。

    不幸的是,这种对两个值的比较验证在 JSON Schema 中是不可能的。所有的值约束都是独立计算的。

    【讨论】:

    • 嗨 - 关于这个的小更新。 JSON Schema (v5) 的下一个版本可能有一个新关键字:$data。这个关键字可以让你做你想做的事——所以可能值得关注 v5 的进展,希望很快! :)
    • 没问题 - 当草稿真正出来时,我会更新我的答案。 :)
    • 该死的......我真的希望这会是一件事。文档并没有让我快速到达任何地方。我想你可以从缺乏记录的东西中推断出它不是一个特性:) 但是当有疑问时,总会有这样的。感谢您的回答!
    • 仅供参考,草案 5 已经发布...虽然可能最好等待草案 6。如果文档在草案 5 中仍然具有误导性,请在 github 上提出问题 =]
    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2016-10-07
    相关资源
    最近更新 更多