[rust踩坑指南]serde序列化库报错:Serialize is not implemented for xxx

181 阅读1分钟

背景介绍:

serde 和 serde_json 是rust中的标准序列化/反序列化库。但是在安装中需要十分注意,不然,很可能得到如下的报错信息:

image.png

解决方案

cargo.toml文件需要控制相关的版本:

serde = { version = "1.0", features = ["derive"] }

# serde_json is just for the example, not required in general
serde_json = "1.0"

资料来源

serde.rs/derive.html

代码示例

use serde::{Serialize, };

#[derive(Serialize)]
struct Point {
    x: i32,
    y: i32,
}

fn main() {
    let p = Point { x: 1, y: 2 };
    let serialized = serde_json::to_string(&p).unwrap();
    println!("{}", serialized); // {"x":1,"y":2}
}