JSON 架构中的自定义属性
Custom Properties in JSON Schema
使用自定义属性扩展 JSON 架构是否有效?
我问的原因是,因为我正在使用模式来呈现模式描述的 JSON 的表单(模式中描述的每个 属性 都用作表单元素带有标签和某种输入)。
如果能够使用我主要用于表单呈现的一些属性来扩展架构会很有用,但在使用架构验证 JSON 对象本身时会忽略这些属性。
我可以为 JSON 对象提供两种不同的表示形式(一种是模式,另一种是具有自定义属性的对象模式,我只是为了创建表单,但如果这样维护起来会更容易我可以将两者合而为一)。
不幸的是 Google 不是很有帮助,而且我没有大量使用 JSON 模式的经验,所以如果我遗漏了一些明显的东西,我深表歉意。
编辑 1:
示例架构片段:
{
"title": "Example Schema",
"type": "object",
"properties": {
"firstName": {
"type": "string",
"CUSTOM_PROPERTY": "CUSTOM_VALUE"
}
}
}
请注意,以上只是一个片段,因此没有 title
、$schema
等
(如果有效 JSON)验证器很可能会忽略您的自定义属性。但是你要使用什么验证器?针对该特定验证器进行检查。
这里有一些要测试的在线验证器:
- http://www.jsonschemavalidator.net/
- https://json-schema-validator.herokuapp.com/
- http://jsonschemalint.com/#/version/draft-05/markup/json
此外,您可以扩展 JSON 架构,请参阅 https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.6.5
使用自定义属性扩展 JSON 架构是否有效?
我问的原因是,因为我正在使用模式来呈现模式描述的 JSON 的表单(模式中描述的每个 属性 都用作表单元素带有标签和某种输入)。
如果能够使用我主要用于表单呈现的一些属性来扩展架构会很有用,但在使用架构验证 JSON 对象本身时会忽略这些属性。
我可以为 JSON 对象提供两种不同的表示形式(一种是模式,另一种是具有自定义属性的对象模式,我只是为了创建表单,但如果这样维护起来会更容易我可以将两者合而为一)。
不幸的是 Google 不是很有帮助,而且我没有大量使用 JSON 模式的经验,所以如果我遗漏了一些明显的东西,我深表歉意。
编辑 1:
示例架构片段:
{
"title": "Example Schema",
"type": "object",
"properties": {
"firstName": {
"type": "string",
"CUSTOM_PROPERTY": "CUSTOM_VALUE"
}
}
}
请注意,以上只是一个片段,因此没有 title
、$schema
等
(如果有效 JSON)验证器很可能会忽略您的自定义属性。但是你要使用什么验证器?针对该特定验证器进行检查。
这里有一些要测试的在线验证器:
- http://www.jsonschemavalidator.net/
- https://json-schema-validator.herokuapp.com/
- http://jsonschemalint.com/#/version/draft-05/markup/json
此外,您可以扩展 JSON 架构,请参阅 https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.6.5