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

时间:2015-03-17 17:18:55

标签: json rust

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

#[derive(RustcDecodable)]
struct MyObj {
  type: String
}

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

error: expected identifier, found keyword `type`
src/mysrc.rs:23     type: String,
                           ^~~~

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

1 个答案:

答案 0 :(得分:19)

您可以使用serde包。它支持重命名字段since February 2015

您的示例可能如下所示:

#[derive(Deserialize)]
struct MyObj {
    #[serde(rename = "type")] 
    type_name: String
}