Ответ 1
Большинство стандартных структур данных сериализуемы, поэтому должны работать следующие структуры:
#[derive(Serialize, Deserialize)]
struct Data {
FirstName: String,
LastName: String,
Age: u32,
Address: Address,
PhoneNumbers: Vec<String>
}
#[derive(Serialize, Deserialize)]
struct Address {
Street: String,
City: String,
Country: String
}
Если некоторые из полей ввода могут отсутствовать, соответствующие поля структуры должны быть Option<T>
вместо просто T
.
Обратите внимание, что имена полей можно присвоить более "Rusty", то есть snake_case, поскольку serde поддерживает переименование аннотаций:
#[derive(Serialize, Deserialize)]
struct Address {
#[serde(rename="Street")]
street: String,
#[serde(rename="City")]
city: String,
#[serde(rename="Country")]
country: String
}