我试图将一个由嵌套 struct 组成的对象序列化为CSV.嵌套的原因是纯粹的代码组织,我不希望序列化之后它仍然存在.这个代码示例代表了我所拥有的(playground)
use serde::Serialize;
use std::io;
#[derive(Serialize)]
struct UserInfo {
id: String,
username: String,
}
#[derive(Serialize)]
struct User {
user_info: UserInfo,
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut wtr = csv::Writer::from_writer(io::stdout());
wtr.serialize(User {
user_info: UserInfo {
id: "1".to_string(),
username: "Jon".to_string(),
},
})?;
wtr.flush()?;
Ok(())
}
运行这个会给我这个错误
错误(Serialize("无法在 struct 中写入头时序列化 struct 中的UserInfo容器"))
我试着把#[serde(flatten)]
加到user_info
,但这个issue也不支持.
有什么解决办法?如果有帮助的话,我不介意手动添加标题.我只想继续筑巢.