如何使用Rust关键字属性名称解码JSON对象?

rki*_*788 14 json rust

我想知道是否可以解码Rust中具有属性名称也是Rust关键字的JSON对象.我正在使用rustc-serialize包,我的结构定义如下所示:

#[derive(RustcDecodable)]
struct MyObj {
  type: String
}
Run Code Online (Sandbox Code Playgroud)

编译器抛出错误,因为type是关键字.确切的编译器错误消息是:

error: expected identifier, found keyword `type`
src/mysrc.rs:23     type: String,
                           ^~~~
Run Code Online (Sandbox Code Playgroud)

对不起新手问题,我刚开始尝试Rust.

oli*_*obk 20

你可以使用serde箱子.它支持自2015年2月以来重命名字段

您的示例可能如下所示:

#[derive(Deserialize)]
struct MyObj {
    #[serde(rename = "type")] 
    type_name: String
}
Run Code Online (Sandbox Code Playgroud)