У нас есть этот проект схемы JSON . Я хотел бы получить образец моих данных JSON и сгенерировать каркас для схемы JSON, который я смогу переделать вручную, добавив такие вещи, как описание, требуемые и т. Д., Которые нельзя извлечь из конкретных примеров.
Например, из моего ввода example.json
:
{
"foo": "lorem",
"bar": "ipsum"
}
Я бы запустил свой инструмент json_schema_generator и получил бы:
{ "foo": {
"type" : "string",
"required" : true,
"description" : "unknown"
},
"bar": {
"type" : "string",
"required" : true,
"description" : "unknown"
}
}
Этот пример был закодирован вручную, поэтому он может содержать ошибки. Есть ли какой-нибудь инструмент, который мог бы помочь мне с преобразованием JSON -> JSON схемы?
json
validation
reflection
jsonschema
blueFast
источник
источник
Ответы:
Возможно, вы ищете это:
http://www.jsonschema.net
Это онлайн-инструмент, который может автоматически генерировать схему JSON из строки JSON. И вы можете легко редактировать схему.
источник
{"hello": "world","num": 42}
но выглядит многообещающеСуммируя другие ответы, вот генераторы схемы JSON, предложенные до сих пор:
В сети:
Python:
NodeJS:
Рубин:
источник
setup.py
GenSON ( PyPI | Github ) - это генератор схем JSON, который может генерировать одну схему из нескольких объектов. Вы также можете объединить схемы с ним. Он написан на Python и поставляется с инструментом CLI.
(Полное раскрытие: я автор.)
источник
Видя, что этот вопрос набирает обороты, я добавляю новую информацию (я не уверен, что она новая, но я не смог ее найти в то время)
источник
Через несколько месяцев лучший ответ, который у меня есть, - мой простой инструмент. Это сырой, но функциональный.
Я хочу что-то похожее на это . Данные JSON могут предоставить каркас для схемы JSON. Я еще не реализовал его, но должна быть возможность предоставить существующую схему JSON в качестве основы, чтобы существующая схема JSON плюс данные JSON могли генерировать обновленную схему JSON. Если в качестве входных данных такая схема не указана, принимаются значения по умолчанию.
Это было бы очень полезно при итеративной разработке: при первом запуске инструмента схема JSON является фиктивной, но ее можно уточнить автоматически в соответствии с эволюцией данных.
источник
Существует инструмент Python для генерации схемы JSON для данного JSON: https://github.com/perenecabuto/json_schema_generator
источник
draft-03
.generate-schema
( NPM | Github ) берет объект JSON, генерирует из него схемы, один выход - схема JSON, он написан на Node.js и поставляется с инструментом REPL и ClI для передачи файлов в.Полное раскрытие: я автор :)
источник
Существует инструмент nodejs, который поддерживает схему json v4 по адресу https://github.com/krg7880/json-schema-generator.
Он работает как инструмент командной строки или как библиотека nodejs:
источник
json-schema-generator - это аккуратный генератор JSON-схем на основе Ruby. Он поддерживает как черновой вариант 3, так и 4 схемы JSON. Он может быть запущен как отдельный исполняемый файл или может быть встроен в скрипт Ruby.
Затем вы можете использовать json-схему для проверки образцов JSON по вновь созданной схеме, если хотите.
источник
Для автономных инструментов, которые поддерживают несколько входов, лучшее, что я видел до сих пор, это https://github.com/wolverdude/GenSON/ Я хотел бы увидеть инструмент, который принимает имена файлов на стандартном вводе, потому что у меня есть тысячи файлов , Однако у меня заканчиваются дескрипторы открытых файлов, поэтому убедитесь, что файлы закрыты . Я также хотел бы видеть генераторы JSON Schema, которые обрабатывают рекурсию. Сейчас я работаю над созданием классов Java из объектов JSON в надежде перейти на схему JSON из моих классов Java. Вот мой сценарий GenSON, если вам интересно или вы хотите идентифицировать ошибки в нем.
источник
Упомянуто много инструментов, но для записи еще один называется JSON Schema inferencer:
https://github.com/rnd0101/json_schema_inferencer
(это не библиотека или продукт, а скрипт на Python)
С обычным полным раскрытием: я автор.
источник
Для node.js> 6.0.0 существует также модуль json-schema-by-example .
источник