从JSON模式生成表单

时间:2018-06-06 00:21:56

标签: json jsonschema

我想基于现有的JSON Schema生成HTML表单。我想知道是否有field type密钥在property上标准化,以便当我遍历模式时,我可以确定要呈现的字段类型。

我所拥有的当前解决方案如果它是"type": "string",则会感觉非常毛茸茸,因为在某些情况下,架构将URL存储为字符串,对于表单而言,这意味着输入type='file'。所以我认为我需要某种元属性但不想不必要地污染模式。

之前有没有人遇到这样的问题,这个问题是否有任何标准属性?

1 个答案:

答案 0 :(得分:2)

JSON架构不提供规范中HTML表单的映射,您可以将typeformat结合起来以涵盖某些情况。例如

{"type": "string", "format": "uri"}

可用于验证网址。

然而,JSON Schema是可扩展的,并且一些实现提供了超出规范的功能。您可以检查一个非常好的HTML表单映射实现:https://github.com/mozilla-services/react-jsonschema-form

您可以使用<input type="file" />指定"format": "data-url",{{1}}不是JSON架构规范的一部分,而是实现提供的自定义扩展。

演示:https://mozilla-services.github.io/react-jsonschema-form/