从 JSON 模式生成表单
Generate Form from JSON Schema
我想根据现有的 JSON 架构生成 HTML 表单。我想知道是否有一个 field type
键是在 property
上标准化的,这样当我遍历模式时我可以确定要呈现的字段类型。
如果它是 "type": "string"
,我目前的解决方案感觉真的很麻烦,因为在某些情况下,模式将 URL 存储为字符串,对于表单来说这意味着输入 type='file'
.所以我认为我需要某种元 属性 但不想不必要地污染架构。
有没有人运行以前遇到过类似的问题,这个问题有任何标准属性吗?
JSON 模式在规范中不提供到 HTML 形式的映射,您可以组合 type
和 format
来涵盖某些情况。例如
{"type": "string", "format": "uri"}
可用于验证 URL。
但是 JSON 架构是可扩展的,一些实现提供了超出规范的功能。您可以检查一个非常好的 HTML 表单映射实现:https://github.com/mozilla-services/react-jsonschema-form.
您可以使用 "format": "data-url"
指定 <input type="file" />
,这不是 JSON 架构规范的一部分,而是实现提供的自定义扩展。
演示:https://mozilla-services.github.io/react-jsonschema-form/
我想根据现有的 JSON 架构生成 HTML 表单。我想知道是否有一个 field type
键是在 property
上标准化的,这样当我遍历模式时我可以确定要呈现的字段类型。
如果它是 "type": "string"
,我目前的解决方案感觉真的很麻烦,因为在某些情况下,模式将 URL 存储为字符串,对于表单来说这意味着输入 type='file'
.所以我认为我需要某种元 属性 但不想不必要地污染架构。
有没有人运行以前遇到过类似的问题,这个问题有任何标准属性吗?
JSON 模式在规范中不提供到 HTML 形式的映射,您可以组合 type
和 format
来涵盖某些情况。例如
{"type": "string", "format": "uri"}
可用于验证 URL。
但是 JSON 架构是可扩展的,一些实现提供了超出规范的功能。您可以检查一个非常好的 HTML 表单映射实现:https://github.com/mozilla-services/react-jsonschema-form.
您可以使用 "format": "data-url"
指定 <input type="file" />
,这不是 JSON 架构规范的一部分,而是实现提供的自定义扩展。
演示:https://mozilla-services.github.io/react-jsonschema-form/