从 JSON 模式生成表单

Generate Form from JSON Schema

我想根据现有的 JSON 架构生成 HTML 表单。我想知道是否有一个 field type 键是在 property 上标准化的,这样当我遍历模式时我可以确定要呈现的字段类型。

如果它是 "type": "string",我目前的解决方案感觉真的很麻烦,因为在某些情况下,模式将 URL 存储为字符串,对于表单来说这意味着输入 type='file'.所以我认为我需要某种元 属性 但不想不必要地污染架构。

有没有人运行以前遇到过类似的问题,这个问题有任何标准属性吗?

JSON 模式在规范中不提供到 HTML 形式的映射,您可以组合 typeformat 来涵盖某些情况。例如

{"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/