#serialization #serde #derive #macro-derive #no-alloc #no-std

macro no-std serde_derive

#[derive(Serialize, Deserialize)]宏的1.1实现

209个稳定版本

使用旧的Rust 2015

1.0.209 2024年8月24日
1.0.204 2024年7月6日
1.0.197 2024年2月20日
1.0.193 2023年11月21日
0.8.19 2016年11月23日

217 in 过程宏

Download history 3000278/week @ 2024-05-04 3096016/week @ 2024-05-11 3085642/week @ 2024-05-18 3009208/week @ 2024-05-25 3106965/week @ 2024-06-01 3147281/week @ 2024-06-08 3016605/week @ 2024-06-15 2990540/week @ 2024-06-22 2680672/week @ 2024-06-29 3189023/week @ 2024-07-06 3119162/week @ 2024-07-13 3189138/week @ 2024-07-20 3197459/week @ 2024-07-27 3318300/week @ 2024-08-03 3736767/week @ 2024-08-10 3083812/week @ 2024-08-17

13,857,133 每月下载量
用于 67,352 个crate(5,904 个直接使用)

MIT/Apache

305KB
7K SLoC

Serde是一个框架,用于高效且通用地序列化和反序列化Rust数据结构。


你可能正在寻找

Serde应用实例

use serde::{Deserialize, Serialize};

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

fn main() {
    let point = Point { x: 1, y: 2 };

    // Convert the Point to a JSON string.
    let serialized = serde_json::to_string(&point).unwrap();

    // Prints serialized = {"x":1,"y":2}
    println!("serialized = {}", serialized);

    // Convert the JSON string back to a Point.
    let deserialized: Point = serde_json::from_str(&serialized).unwrap();

    // Prints deserialized = Point { x: 1, y: 2 }
    println!("deserialized = {:?}", deserialized);
}

寻求帮助

Serde 是最广泛使用的 Rust 库之一,所以 Rustaceans 聚集的地方都能帮助你。对于聊天,可以考虑尝试非官方社区 Discord 的 #rust-questions#rust-beginners 频道(邀请链接:https://discord.gg/rust-lang-community),官方 Rust 项目 Discord 的 #rust-usage#beginners 频道(邀请链接:https://discord.gg/rust-lang),或 Zulip 的 #general 流。对于异步问题,可以考虑 StackOverflow 上的 [rust] 标签、/r/rust subreddits(每周有固定的问题帖子),或者 Rust Discourse 论坛。在这个仓库中提交支持问题是可以接受的,但它们通常不会像上述任何一种方式那样得到许多关注,并且可能过一段时间后仍未得到回复而被关闭。

依赖项

~290–750KB
~18K SLoC