Tho*_*aun 7 serialization rust serde
我感兴趣的是使用Java之类的关键字使变量不会自动序列化(例如,由Serde进行)transient
,而是在Rust中。我需要这个来存储密码。当然,我可以在序列化到磁盘后手动清除数据,但是我想知道是否有更好,更自动的选项。
Pet*_*all 11
您可以使用以下#[serde(skip)]
属性:
use serde::{Deserialize, Serialize}; // 1.0.88
#[derive(Deserialize, Serialize)]
struct MyStruct {
field1: i32, // this will be (de)serialized
#[serde(skip)]
field2: i32, // this will be skipped
}
Run Code Online (Sandbox Code Playgroud)
如果是类型需要去序列化,这是一个好主意,陪#[serde(skip)]
一个#[serde(default)]
(或#[serde(default = "fn_name")]
)属性。Serde对已跳过的字段进行反序列化,就好像#[serde(default)]
是隐式添加了a一样,但是如果您明确指出此值的来源,则对于阅读您的代码的人来说更清楚。
看到: