Что такое преобразователь структуры JSON в Go?
Преобразователь структуры 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 к сопоставлению структур. Вставить {"order_id": 1042, "всего": 19.5, "предметы": [{"sku": "A1", "qty": 2}, {"sku": "B2", "qty": 1, "gift_note": "С днем рождения"}]}, ввести порядок как тип корня и щелкнуть Конвертировать. Вы получаете тип Структура порядка с помощью OrderID int, Total float64 и Items []struct, удерживающая строку Sku, Qty int и строку GiftNote. GiftNote существует, хотя она есть только у второго элемента, поскольку преобразователь структур JSON в Go объединяет каждый элемент массива в один тип.
Как использовать преобразователь структуры JSON в Go?
Вставьте свой JSON
Вставьте объект или массив JSON во входное поле. сначала загрузите образец, если вы хотите увидеть форму сгенерированной структуры, прежде чем использовать свои собственные данные.
Назовите корневой тип
Введите имя структуры верхнего уровня, например User или ApiResponse.Он очищается в действительный экспортированный идентификатор Go, поэтому компилируется в том виде, в каком он написан.
Установите целочисленные параметры и параметры тега
Выберите int или int64 для целых чисел и включите пустой, если хотите, чтобы пустые поля были исключены, когда структура закодирована обратно в JSON.
Конвертировать и копировать
Нажмите "Конвертировать", чтобы построить определения структуры, а затем скопировать их в файл Go. Неверный JSON сообщается с точным сообщением синтаксического анализатора, чтобы вы могли его исправить.
Основные характеристики
Правильные теги json
Каждое поле сохраняет тег json: "original_key", поэтому json.Unmarshal сопоставляет данные с точным именем JSON, даже если поле Go переименовано в соответствии с соглашениями.
Названия полей Go-Convention
Ключи экспортируются, а общие инициализмы закладываются в верхний регистр, поэтому id становится ID, user_url становится UserURL, а html_body становится HTMLBody, что соответствует ожиданиям golint.
Встроенные вложенные структуры
Вложенные объекты JSON становятся встроенными структурными литералами на любую глубину, поэтому вся форма живет в одном объявлении, которое вы можете вставить как один блок.
Объединённые массивы объектов
Массив объектов создает одну структуру, охватывающую каждый ключ, который есть у любого элемента, и конфликтующие типы значений для ключа возвращаются к интерфейсу{}, а не выходят из строя.
Frequently Asked Questions
Related Tools
JSON Schema Generator
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.
JSON Sorter
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.
JSON to PHP Array
Convert JSON into a PHP array literal. Choose short [] or array() syntax, indentation, and an optional variable assignment, then copy the result. 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.
Comments
0 comments
No comments yet. Be the first to share your thoughts!