热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

【Serde】重命名

环境Time2021-12-07Rust1.57.0serde1.0.130serde_json1.0.72概念参考:https:serde.rscontainer-attrs.h

环境



  • Time 2021-12-07

  • Rust 1.57.0

  • serde 1.0.130

  • serde_json 1.0.72


概念

参考:https://serde.rs/container-attrs.html


示例



  1. #[serde(rename = "xxxx")] 针对序列化和反序列化同名

  2. #[serde(rename(serialize = "xxxx"))] 针对序列化

  3. #[serde(rename(deserialize = "xxxx"))] 针对反序列化

  4. #[serde(rename(serialize = "xxxx", deserialize = "yyyy"))] 针对不同名

其它的属性宏也有类似的命名约定。


main.rs

use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
struct Person {
#[serde(rename = "my_name")]
name: String,
age: u16,
}
fn main() {
let person = Person {
name: "JiangBo".to_owned(),
age: 44,
};
let json = serde_json::to_string(&person).unwrap();
println!("{}", json);
let p: Person = serde_json::from_str(&json).unwrap();
println!("{:?}", p);
}

总结

使用 serde 进行序列化和反序列化时,对 JSON 中的字段进行重命名。


附录



推荐阅读
author-avatar
轻梦云裳_904
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有