我可以在 Rust 中序列化 struct camel_case 并反序列化 PascalCase

mnk*_*802 3 rust serde

我有一个结构,我希望能够在camel_case中序列化并在PascalCase中反序列化。这可能吗?我见过塞尔德rename_all = snake_case

Cha*_*man 8

来自文档

#[serde(rename_all = "...")]

根据给定的大小写约定重命名所有字段(如果这是一个结构)或变体(如果这是一个枚举)。可能的值为"lowercase", "UPPERCASE", "PascalCase", "camelCase", "snake_case", "SCREAMING_SNAKE_CASE", "kebab-case", "SCREAMING-KEBAB-CASE"

允许为序列化与反序列化指定独立的情况:

  • #[serde(rename_all(serialize = "..."))]
  • #[serde(rename_all(deserialize = "..."))]
  • #[serde(rename_all(serialize = "...", deserialize = "..."))

所以#[serde(rename_all(serialize = "camelCase", deserialize = "PascalCase"))]