Вопросы по теме 'serde'

Clap не может проанализировать файл YAML: не удалось преобразовать значение YAML String (1) в строку
Я использую файл YAML для определения интерфейса командной строки. Я разбираю файл с помощью макроса Clap load_yaml! , который некоторое время работал нормально: #[macro_use] extern crate clap; use clap::{App, ArgMatches}; fn main() { let...
891 просмотров
schedule 02.11.2021

Может ли Serde десериализовать JSON до одного из набора типов в зависимости от значения поля?
У меня есть группа разных сообщений, которые поступают как JSON и могут быть выделены на основе одного поля, но тогда каждый вариант имеет различную коллекцию вторичных полей: #[derive(Debug, Serialize, Deserialize)] struct MessageOne { ///op...
2119 просмотров
schedule 20.10.2021

Как десериализовать NaN как `nan` с помощью serde_json?
У меня есть типы данных, которые выглядят так: #[derive(Serialize, Deserialize, Debug)] #[serde(rename_all = "camelCase")] pub struct Matrix { #[serde(rename = "numColumns")] pub num_cols: usize, #[serde(rename = "numRows")] pub...
631 просмотров
schedule 14.09.2021

Как использовать serde skip_serializing_if с пустыми срезами?
Можно сделать #[serde(skip_serializing_if = "Vec::is_empty")] для Vec s, но что эквивалентно для срезов?
276 просмотров
schedule 18.10.2021

Как использовать собственный десериализатор serde для временных меток хронографа?
Я пытаюсь разобрать JSON в структуру с полем chrono::DateTime . В JSON есть временные метки, сохраненные в настраиваемом формате, для которого я написал десериализатор. Как мне подключить их и заставить работать с помощью...
3404 просмотров
schedule 08.10.2021

Десериализовать файл с помощью serde_json во время компиляции
В начале своей программы я читаю данные из файла: let file = std::fs::File::open("data/games.json").unwrap(); let data: Games = serde_json::from_reader(file).unwrap(); Я хотел бы знать, как это можно сделать во время компиляции по следующим...
1758 просмотров

Как переименовать все ключи в serde_json :: Map?
Допустим, у меня есть &mut std::collections::HashMap , и я хочу перевести все клавиши в верхний регистр. Следующий код делает свое дело: use std::collections::HashMap; fn keys_to_upper<T>(map: &mut HashMap<String, T>) {...
182 просмотров
schedule 07.09.2021

Есть ли способ указать имена полей для serde во время выполнения?
Я пытаюсь десериализовать структуру JSON с помощью serde , но где некоторые поля имена могут быть разными в разных средах. Например: В dev: { "fields": { "field004": "This is the title",...
114 просмотров

Как я могу реализовать serde для типа, которым я не владею, и чтобы он поддерживал составные / обертки / типы коллекций
Этот вопрос похож на Как мне реализовать черту, которой я не владею, для типа, которым я не владею? Я написал сериализатор для Date, используя механизм, описанный в документации, с моим модулем, обертывающим функцию сериализации. pub mod...
225 просмотров
schedule 20.09.2021

Почему возникает ошибка (завершающие символы) при попытке десериализации файла JSON в хэш-карту?
По сути, я пытаюсь десериализовать файл JSON в хэш-карту ‹String, String›, используя ящик serde, но. Файл JSON: " [ { "orchard_name": "Happy Apple", "tons": "5"...
75 просмотров
schedule 13.10.2021

Как я могу отсортировать поля в алфавитном порядке при сериализации с помощью serde?
У меня есть API, который требует, чтобы поля объекта были отсортированы в алфавитном порядке, потому что структура должна быть хеширована. В Java / Jackson вы можете установить флаг в сериализаторе: MapperFeature.SORT_PROPERTIES_ALPHABETICALLY ....
98 просмотров
schedule 16.09.2021

json не найден при десериализации ответа reqwest
Я новичок в Rust, и я просто не могу найти решение этой проблемы. Я пытаюсь получить ответ на запрос получения как json. #[macro_use] extern crate serde; extern crate serde_derive; extern crate reqwest; use reqwest::Error; fn main(){...
1053 просмотров

Как десериализовать JSON в структуру со значением Box ‹[u8]›?
У меня есть структура, которая должна включать поле байтов, и я пытаюсь десериализовать ее из JSON. Когда я использую &'a [u8] , это работает, но тогда мне нужно добавить аннотацию времени жизни к этой структуре, структуре, которая ее включает,...
147 просмотров
schedule 02.03.2022

Как я могу десериализовать перечисление с помощью необязательного внутреннего тега?
Я использую Serde для десериализации пользовательского файла конфигурации, написанного на YAML. Файл может содержать определения различных типов, которые я представляю как перечисления с внутренними тегами: OfKindFoo: kind: Foo bar: bar;...
468 просмотров
schedule 09.03.2022

Реализация универсального шестнадцатеричного десериализатора с разделителями по длине в Serde
Я хочу использовать Serde , чтобы взять на себя как можно большую ответственность за хорошо отформатированный ввод, отправленный пользователем. У меня есть несколько полей, для которых требуются шестнадцатеричные значения конкретной, разной длины на...
287 просмотров
schedule 16.03.2022

Как преобразовать поле в строку с помощью Serde?
У меня есть настраиваемое поле в моем JSON , которое становится динамическим и должно быть проанализировано для структуры, которая имеет поле HashMap , подобное следующему: #[macro_use] extern crate serde_derive; extern crate serde; extern...
3108 просмотров
schedule 12.03.2022

Есть ли способ сделать serde_json строго десериализованным?
Я имею в виду, что если два объекта перекрываются по некоторым атрибутам, есть ли способ попытаться сопоставить все из них? Например: use serde::{Serialize, Deserialize}; use serde_json; // 1.0.47; // 1.0.104 #[derive(Serialize, Deserialize,...
211 просмотров
schedule 04.04.2022

Наследование Serde's Serialize или Deserialize заставляет универсальный тип быть сериализуемым, хотя это не обязательно.
Мой тип A , который может содержать все, что реализует trait Trait , является сериализуемым, хотя тип, реализующий черту Trait , может не быть. В моем случае этого не может быть - это закрытый асимметричный ключ: extern crate serde;...
923 просмотров
schedule 20.04.2022

Есть ли способ сгруппировать поля структуры при сериализации с помощью Serde, например, обратный атрибуту flatten?
Serde имеет flatten атрибут , который выравнивает один уровень структуры данных. Я хочу обратное: способ группировки атрибутов. У меня есть структура struct Foo { owner: Owner, alpha: Server, beta: Server, } и я хочу, чтобы...
79 просмотров
schedule 04.05.2022

Я получаю привязку признака `T: sns_pub :: _ IMPL_DESERIALIZE_FOR_Message :: _ serde :: Serialize` не выполняется
Я пытаюсь сериализовать объект с помощью общего члена. Я получаю ошибку 'equired из-за требований к имплицитности sns_pub::_IMPL_DESERIALIZE_FOR_Message::_serde::Serialize для sns_pub::Message<T> #[derive(Debug, PartialEq, Serialize,...
204 просмотров
schedule 08.05.2022