Что такое генератор схемы JSON?

Генератор схем JSON считывает пример значения JSON - ответ API, файл конфигурации, полезную нагрузку веб-крючка - и записывает схему JSON, которая проверяет его. Он делает вывод о типе каждого поля, объединяет массив объектов в единую схему элементов, а не в шумное объединение, выводит, какие ключи требуются от тех, которые присутствуют в каждой записи, и может помечать строковые форматы, такие как дата-время, электронная почта, uri и uuuid. Вы вставляете данные, которые у вас уже есть; вы получаете схему, которую в противном случае вы бы написали вручную по пунктам.
Написание схемы вручную медленно и легко получить слегка неправильно. соблазнительно ввести то, что, по вашему мнению, содержит полезная нагрузка, пропустить вложенное поле, отметить иногда нулевое свойство, как требуется, или забыть, что одна конечная точка возвращает массив, где другая возвращает один объект. Схема, созданная прямо из реальных данных, начинается с фактической формы, поэтому документ, который вы проверяете, соответствует тому, что действительно отправляет служба. Оттуда вы ужесточаете ограничения - шаблоны, перечисления, минимумы - вручную, но утомительные леса сделаны.
Все работает в вашем браузере. механизм вывода - это TypeScript без зависимостей, а не оболочка размещенного API, поэтому полезные нагрузки, которые обычно содержат токены, электронные письма и внутренние идентификаторы, никогда не покидают страницу. Выберите Draft-07 или диалект 2020-12, добавьте заголовок, переключите обнаружение требуемого поля, определение формата и строгие `additionalProperties`, затем скопируйте схему или загрузите ее как файл.json.
Схема описывает вашу выборку, а не ваше намерение, поэтому рассматривайте выходные данные как первый черновик: необходимые поля выводятся из того, что присутствует, а форматы обнаруживаются по шаблону, поэтому строка, похожая на дату, вводится как единое целое, даже когда это идентификатор, который просто похож на него.
Как использовать генератор схемы JSON?
Вставьте свой JSON
Откройте ответ API, приспособление или любое значение JSON. Загрузите образец сначала, чтобы увидеть, как обрабатываются вложенные объекты, массивы объектов и строковые форматы.
Выберите диалек
Выберите Draft-07 для самой широкой поддержки инструментов или 2020-12 для текущей спецификации. На выходе для вас записывается правильный $schema URI.
Установите свои варианты
Добавьте необязательный заголовок, решите, следует ли выпускать необходимый массив, обнаруживать форматы строк и блокировать объекты с помощью дополнительных свойств: false для строгой проверки.
генерировать, затем скопировать или загрузить
нажмите «Генерировать». Просмотрите предполагаемые типы и обязательные поля, затем скопируйте схему в свой буфер обмена или загрузите ее в виде файла .json, готовых поместить его в ваш валидатор.
Основные характеристики
Выход-07 и 2020-12
Выпускайте либо широко поддерживаемый диалект Draft-07, либо текущую спецификацию 2020-12. Соответствующий идентификатор $schema записывается в корень, чтобы валидаторы выбирали правильные правила.
Слияние смарт-массивов
Массив объектов становится схемой единого элемента, описывающей один элемент, а не обширную. Требуются клавиши, присутствующие в каждом элементе; ключи, которые появляются только в некоторых, остаются необязательными.
Требуемое выведение
Генератор извлекает необходимый массив из ключей, присутствующих в каждом объекте, который он видит, и именно так ведут себя реальные данные с разбивкой по страницам - одни поля всегда есть, другие нет.
Обнаружение формата строки
Распознает дату-время, дату, время, почту, UUID и IPv4, и теги их соответствующим ключевым словом формата, давая вам подтверждение, которое вы в противном случае добавили бы вручную.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!