【问题标题】:Custom Properties in JSON SchemaJSON Schema 中的自定义属性
【发布时间】:2017-04-22 12:28:38
【问题描述】:

使用自定义属性扩展 JSON 模式是否有效?

我问的原因是,因为我正在使用模式来为模式描述的 JSON 呈现表单(模式中描述的每个属性都用作带有标签和某种输入的表单元素)。

如果能够使用我主要用于表单呈现的一些属性来扩展架构会很有用,但是在使用架构来验证 JSON 对象本身时会被忽略。

我可以对 JSON 对象有两种不同的表示形式(一种是模式,另一种是具有自定义属性的模式类对象,我只是用于创建表单,但如果我可以将两者结合在一起,维护起来会更容易)。

不幸的是,Google 并没有提供太多帮助,而且我没有大量使用 JSON 模式的经验,所以如果我遗漏了一些明显的东西,请致歉。

编辑 1:
示例架构片段:

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string",
            "CUSTOM_PROPERTY": "CUSTOM_VALUE"
        }
    }
}

请注意,上面只是一个 sn-p,因此没有 title$schema 等。

【问题讨论】:

  • 如果 JSON 仍然有效,您可以通过添加新属性来扩展 JSON 对象。你能举个例子吗?
  • @Cubi 如果 JSON Schema 包含自定义属性,它是否可以被 JSON 模式解析器正确解析。在上面添加了一个示例。

标签: javascript json jsonschema json-schema-validator


【解决方案1】:

(如果它是有效的 JSON)验证器很可能会忽略您的自定义属性。但是你要使用什么验证器?对照那个特定的验证器检查它。

这里有一些在线验证器要测试:

另外,您可以扩展 JSON 模式,请参阅 https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.6.5

【讨论】:

猜你喜欢
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多