属性(Attributes)

属性(Attributes) 用于自定义 Serde 派生生成的 SerializeDeserialize 实现。它们需要 Rust 编译器版本 1.15 及以上。

有三类属性:

use serde::{Serialize, Deserialize}; #[derive(Serialize, Deserialize)] #[serde(deny_unknown_fields)] // <-- 这是一个容器属性 struct S { #[serde(default)] // <-- 这是一个字段属性 f: i32, } #[derive(Serialize, Deserialize)] #[serde(rename = "e")] // <-- 这也是一个容器属性 enum E { #[serde(rename = "a")] // <-- 这是一个变体属性 A(String), } fn main() {}

请注意,一个单独的 struct、enum、variant 或 field 可能有多个属性。