我正在一个项目中,我需要将JSON文件添加到存储库中以生成一些测试数据。我需要记录该文件的格式,以便每个新开发人员都可以依靠该文档来生成新文件。
我正在考虑使用json-schema进行文档记录,我发现了一个非常有用的在线工具,名为jsonschema(肯定大多数人已经知道了)。我需要知道的是,是否有一些工具可以执行逆任务,即:基于模式,基于模式生成模板JSON。例如,拥有模式
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://example.com/root.json",
"type": "object",
"title": "The Root Schema",
"required": [
"checked",
"dimensions",
"id",
"name",
"price",
"tags"
],
"properties": {
"checked": {
"$id": "#/properties/checked",
"type": "boolean",
"title": "The Checked Schema",
"default": false,
"examples": [
false
]
},
"dimensions": {
"$id": "#/properties/dimensions",
"type": "object",
"title": "The Dimensions Schema",
"required": [
"width",
"height"
],
"properties": {
"width": {
"$id": "#/properties/dimensions/properties/width",
"type": "integer",
"title": "The Width Schema",
"default": 0,
"examples": [
5
]
},
"height": {
"$id": "#/properties/dimensions/properties/height",
"type": "integer",
"title": "The Height Schema",
"default": 0,
"examples": [
10
]
}
}
},
"id": {
"$id": "#/properties/id",
"type": "integer",
"title": "The Id Schema",
"default": 0,
"examples": [
1
]
},
"name": {
"$id": "#/properties/name",
"type": "string",
"title": "The Name Schema",
"default": "",
"examples": [
"A green door"
],
"pattern": "^(.*)$"
},
"price": {
"$id": "#/properties/price",
"type": "number",
"title": "The Price Schema",
"default": 0.0,
"examples": [
12.5
]
},
"tags": {
"$id": "#/properties/tags",
"type": "array",
"title": "The Tags Schema",
"items": {
"$id": "#/properties/tags/items",
"type": "string",
"title": "The Items Schema",
"default": "",
"examples": [
"home",
"green"
],
"pattern": "^(.*)$"
}
}
}
}
运行该工具,我应该得到类似的东西
{
"checked": false,
"dimensions": {
"width": 0,
"height": 0
},
"id": 0,
"name": "",
"price": 0.0,
"tags": [
""
]
}
,这是具有默认值的模板。首选在线工具,但是如果您可以向我提供一些Node / Ruby实用程序,那么它也将受到欢迎。
预先感谢您的回答/评论。最好的问候