Преобразователь структуры JSON в Go превращает документ JSON в описания типа Go, которые его описывают, поэтому вы можете размаршировать те же данные с помощью кодирования/json вместо ввода структуры вручную. Каждый объект JSON становится структурой Go, каждое поле несет тег json:"ключ", который отображает его обратно в исходное имя, а скалярные типы выводятся из значений: строка JSON становится строкой, целое число становится внутренним, десятичная дробь становится float64, истинное и ложное становится пучком, а нуль становится интерфейсом {}. Вставьте полезную нагрузку, и вы получите обратно блок типа "готово к компиляции".
Он существует, потому что запись Go структур из реального ответа API утомительна и легко получить тонко неправильно Имена полей должны быть экспортированы и следовать Go соглашения, поэтому id становится ID и user_url становится UserURL, в то время как json тег должен сохранить точный исходный ключ или json.Unmarshal молча пропускает поле Вложенные объекты нуждаются в их собственной структуре, и массив объектов нуждается в единой структуре, которая охватывает каждый ключ любой элемент имеет. делать это через глубоко вложенный ответ, это где ошибки заползают в. конвертер применяет эти правила последовательно: вложенные объекты становятся встроенными структурами, и массивы объектов сливаются так что ключ, который появляется только в некоторых элементах, все еще присутствует в сгенерированном типе.
Все работает в вашем браузере. JSON, который вы вставляете, анализируется и анализируется в JavaScript на вашем собственном устройстве, поэтому ничего не загружается, не регистрируется и не сохраняется, и инструмент продолжает работать с сетью отключенным после загрузки страницы. Это имеет значение, когда полезная нагрузка является частным ответом API или содержит ключи и значения, которые вы предпочитаете никуда не отправлять. Вы можете переименовать тип root, переключить целые числа на int64, когда вам нужен более широкий тип, и добавить пустой к каждому тегу, когда вы хотите, чтобы нулевые значения были исключены из закодированного вывода.
Вставьте объект или массив JSON во входное поле. сначала загрузите образец, если вы хотите увидеть форму сгенерированной структуры, прежде чем использовать свои собственные данные.
Введите имя структуры верхнего уровня, например User или ApiResponse.Он очищается в действительный экспортированный идентификатор Go, поэтому компилируется в том виде, в каком он написан.
Выберите int или int64 для целых чисел и включите пустой, если хотите, чтобы пустые поля были исключены, когда структура закодирована обратно в JSON.
Нажмите "Конвертировать", чтобы построить определения структуры, а затем скопировать их в файл Go. Неверный JSON сообщается с точным сообщением синтаксического анализатора, чтобы вы могли его исправить.
Каждое поле сохраняет тег json: "original_key", поэтому json.Unmarshal сопоставляет данные с точным именем JSON, даже если поле Go переименовано в соответствии с соглашениями.
Ключи экспортируются, а общие инициализмы закладываются в верхний регистр, поэтому id становится ID, user_url становится UserURL, а html_body становится HTMLBody, что соответствует ожиданиям golint.
Вложенные объекты JSON становятся встроенными структурными литералами на любую глубину, поэтому вся форма живет в одном объявлении, которое вы можете вставить как один блок.
Массив объектов создает одну структуру, охватывающую каждый ключ, который есть у любого элемента, и конфликтующие типы значений для ключа возвращаются к интерфейсу{}, а не выходят из строя.
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
Sort the keys of a JSON object alphabetically, recursively through nested objects, with optional array sorting. Ascending or descending, minify or pretty. Client-side, no signup.
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. 100% in your browser.
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.
0 comments
No comments yet. Be the first to share your thoughts!