Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpPrJs 287 of 288 menu
◀ ▶

Практика на JSON в Rust

В этих задачах потренируем метки полей, запись и чтение, списки и карты на маленьких примерах в одном main.rs.

Дана структура:

struct Item { name: String, qty: i32, }

Соберите строку для имени "pen" и количества 3, выведите ее и разберите исход операции обратно в Item.

Дана строка:

let text = r#"{"name":"disk","qty":2}"#;

Объявите Item с полями name и qty, прочитайте text и выведите имя и число.

Даны типы:

struct Meta { ver: i32, } struct Pack { meta: Meta, tags: Vec<String>, }

Соберите строку для версии 1 и тегов "a" и "b", затем выведите результат.

Дана строка:

let text = r#"{"meta":{"ver":2},"tags":["x"]}"#;

Прочитайте текст в Pack с полями meta и tags и выведите версию и длину списка тегов.

Дана структура:

struct Row { title: String, note: Option<String>, }

Настройте пропуск пустого note, соберите строку для заголовка "log" и None в примечании; скажите, будет ли ключ "note" в тексте.

Дана структура:

struct Account { #[serde(rename = "login")] user: String, active: bool, }

Прочитайте строку {"login":"kate","active":true}, выведите имя и флаг через разбор исхода.

Дана структура:

struct Scores { data: HashMap<String, i32>, }

Соберите строку с картой: ключ "a" равен 1, ключ "b" равен 2. Прочитайте текст обратно и выведите сумму значений.

Дана строка:

let text = r#"{"items":[{"name":"a","qty":1},{"name":"b","qty":2}]}"#;

Опишите обертку со списком Item, прочитайте text, выведите количество элементов и имя второго.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить