Введение в JSON в Rust
Формат JSON хранит поля и списки одной строкой, которую читают разные программы. Объект записывают фигурными скобками с парами ключ и значение, массив квадратными скобками, строки в двойных кавычках. Так удобно обмениваться данными по сети и в файлах без своего бинарного протокола.
В Rust за перевод между такой строкой и типами в программе отвечают внешние крейты. Один дает пометки и трейты для структур, другой собирает и разбирает готовую строку по правилам формата. Поля структуры должны совпадать с ключами или быть переименованы специальной записью над полем.
Сборка превращает значение в строку и возвращает исход: при успехе в строке лежит готовый объект или массив, при сбое его не используют. Разбор принимает строку и тип, куда положить результат; если ключи не подошли или тип не совпал, исход сообщает о неудаче без заполненной структуры.
Дальше подключим зависимости в проекте Cargo, зададим имена ключей, запишем структуру в строку и прочитаем ее обратно, разберем вложенные объекты, списки и карты, пропуск пустого необязательного поля и свой вид для отдельного типа, а в конце закрепим приемы на задачах.