Ответ 1
Вы можете использовать ящик serde
. Он поддерживает переименование полей с февраля 2015 года
Ваш пример может выглядеть следующим образом:
#[derive(Deserialize)]
struct MyObj {
#[serde(rename = "type")]
type_name: String
}
Мне было интересно, можно ли декодировать объект JSON в Rust, у которого есть имя атрибута, которое также является ключевым словом Rust. Я работаю с ядром rustc-serialize, и мое определение структуры выглядит следующим образом:
#[derive(RustcDecodable)]
struct MyObj {
type: String
}
Компилятор выдает ошибку, потому что тип - это ключевое слово. Точное сообщение об ошибке компилятора:
error: expected identifier, found keyword `type`
src/mysrc.rs:23 type: String,
^~~~
Извините за вопрос новобранец, я только что начал опробовать Rust.
Вы можете использовать ящик serde
. Он поддерживает переименование полей с февраля 2015 года
Ваш пример может выглядеть следующим образом:
#[derive(Deserialize)]
struct MyObj {
#[serde(rename = "type")]
type_name: String
}