JSON в Rust
Генерация структур Rust с атрибутами Serde из JSON
Вставьте 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.Вставьте JSON, загрузите или перетащите файл .json либо загрузите один из примеров.
- 2.Задайте имя корневой структуры и выберите derive Debug, Clone и Serde.
- 3.Выберите автоматическое переименование, фиксированное правило или переименование только по полям.
- 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 выключены.
