Я работаю над проектом, в котором мне нужно добавить файлы 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, это также приветствуется.
Заранее спасибо за ваши ответы / комментарии.С наилучшими пожеланиями