JSON в Rust

Генерация структур Rust с атрибутами Serde из JSON

Ввод JSON

Параметры

Модель
Сериализация

Вывод Rust

Вставьте JSON или загрузите пример, чтобы сгенерировать код Rust.

Что генерирует JSON to Rust

JSON to Rust превращает ответ API или любой пример JSON в структуры Rust. При включённом Serde каждая структура получает derive Serialize и Deserialize. Автоматическое переименование проверяет собственные правила регистра Serde и добавляет #[serde(rename_all = "camelCase")] (или другое правило), только если оно воспроизводит все ключи этой структуры; неподходящие ключи получают #[serde(rename = "...")]. Необязательные поля получают #[serde(default, skip_serializing_if = "Option::is_none")], чтобы при обратной записи они оставались отсутствующими.

Как использовать
  1. 1.Вставьте JSON, загрузите или перетащите файл .json либо загрузите один из примеров.
  2. 2.Задайте имя корневой структуры и выберите derive Debug, Clone и Serde.
  3. 3.Выберите автоматическое переименование, фиксированное правило или переименование только по полям.
  4. 4.Прочитайте заметки под выводом, затем скопируйте код или скачайте models.rs.
Как выводятся типы
  • •Проверяется каждый элемент массива, а не только первый, и объекты одного массива объединяются.
  • •Ключ, отсутствующий в части объектов, необязателен; ключ, который иногда равен null, допускает null. Эти случаи различаются.
  • •1 и 2.5 в одной позиции расширяются до дробного числа; о других смешениях выводится заметка.
  • •Пустые массивы и значения, которые всегда равны null, не дают сведений о типе, поэтому используется обобщённый тип, а заметка объясняет причину.
  • •Сопоставление типов: строка → String, целое число → i64 (за его пределами u64 или serde_json::Value), дробное число → f64, логическое значение → bool, массив → Vec<T>, объект → struct, отсутствует или null → Option<T>, неизвестное или смешанное → serde_json::Value.
Ограничения и конфиденциальность

Пример показывает, как данные выглядели один раз, а не полный контракт API. Проверьте необязательные поля, обобщённые типы и разрядность чисел, прежде чем полагаться на код. Ввод ограничен 5 МБ и 256 уровнями вложенности; начиная с 2 МБ генерация ждёт нажатия кнопки «Сгенерировать». Всё выполняется в браузере, JSON никуда не загружается. Для обобщённых значений нужен крейт serde_json, даже если derive для Serde выключены.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch