我想知道是否有可能解码Rust中的JSON对象,该对象的属性名也是Rust关键字.我正在使用rustc serialize crate ,我的 struct 定义如下所示:

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

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

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

抱歉,我刚开始try Rust .

推荐答案

你可以用serde箱.它支持重命名字段since February 2015

然后,您的示例可以如下所示:

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

Rust相关问答推荐

as操作符如何将enum转换为int?

交叉术语未正确清除屏幕

关于Rust 中回归的逻辑

如何将`Join_all``Vec<;Result<;Vec<;Foo&>;,Anywhere::Error&>;`合并到`Result<;Vec<;Foo&>;,Anywhere::Error&>;`

在UdpSocket上使用sendto时的隐式套接字绑定

为昂贵的for循环制作筛子

Trait bound i8:来自u8的不满意

为什么TcpListener的文件描述符和生成的TcpStream不同?

在运行特定测试时,如何 suppress cargo test 的空输出?

为什么AsyncRead在Box上的实现有一个Unpin特征绑定?

为什么 vec![Vec::with_capacity(n)] 为子向量创建 0 容量?

在 Rust 中用问号传播错误时对类型转换的困惑?

详尽的匹配模式绑定

Rust Option 的空显式泛型参数

为什么是&mut发送?线程如何在安全的 Rust 中捕获 &mut?

需要一个有序向量来进行 struct 初始化

pyO3 和 Panics

Some(v) 和 Some(&v) 有什么区别?

错误:将自定义 proc_macro 与用Rust 的宝贝编写的属性一起使用时,无法在此范围内找到属性

返回迭代器的特征