Rust结构体如何使用纯数字字段名?JSON解析报错求助
如何在Rust中解析含纯数字键的JSON响应
Rust的标识符规则不允许以数字开头,直接用纯数字作为结构体字段名会触发编译报错。解决这个问题的核心是借助serde库的rename属性,将合法的Rust字段名与JSON中的纯数字键做映射。
示例代码
use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize, Debug)] struct PostResponse { #[serde(rename = "0000")] item_id: String, // 可添加其他需要解析的JSON字段 }
说明
- 结构体里的
item_id是符合Rust命名规范的字段名 #[serde(rename = "0000")]属性会告知serde:反序列化时将JSON中"0000"键对应的值赋值给item_id;序列化时则反向把item_id的值映射为JSON的"0000"键- 若JSON中还有其他纯数字键的字段,都可以用相同方式处理
内容的提问来源于stack exchange,提问作者András Krausz
相关产品推荐
相关产品推荐

