我想知道是否可以解析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。
答案 0 :(得分:19)
您可以使用serde
包。它支持重命名字段since February 2015
您的示例可能如下所示:
#[derive(Deserialize)]
struct MyObj {
#[serde(rename = "type")]
type_name: String
}