关于serde_json我希望大家都能知道这些事
我最近一直在用Rust解析大量的json,这里有一些细节我想和大家分享。
与有标签的
unions
相比,无标签的unions
解析起来非常慢。如果你关心性能,最好是有一个可以区分unions
变量的属性。你可以通过解析到一个使用
&str
字段的数据结构来避免对字符串的分配。有一种类型
serde_json::Number
可以避免转换为数字格式,直到你真正想要花费处理时间。如果你使用标签
union
来区分json属性值,你不需要使用枚举变量的名称,你可以使用:#[serde(tag="animal_type")] enum Animal { #[serde(alias="crab")] Crab(MyCrabStruct) #[serde(alias="gopher")] Gopher(MyGopherStruct) }
该帖子下还有其他网友分享的一些细节。
Reddit: https://libreddit.spike.codes/r/rust/comments/w3q1oq/things_i_wish_i_had_known_about_serde_json/