在 Serde 序列化器中,如何添加附加字段:
#[derive(Serialize)]
struct X {
a: u32,
b: u32,
c: u32,
}
Run Code Online (Sandbox Code Playgroud)
我想添加到 JSON 序列化字段dvalue "qwe"。X如何不从头开始完全编写序列化器?
自定义Serialize实现还不错:
use serde::ser::{Serialize, Serializer, SerializeStruct};
struct X {
a: u32,
b: u32,
c: u32,
}
impl Serialize for X {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut x = serializer.serialize_struct("X", 4)?;
x.serialize_field("a", &self.a)?;
x.serialize_field("b", &self.b)?;
x.serialize_field("c", &self.c)?;
x.serialize_field("d", "qwe")?;
x.end()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
439 次 |
| 最近记录: |