2 个不稳定版本

0.13.0 2023 年 10 月 26 日
0.11.3 2023 年 10 月 10 日
0.10.1 2023 年 6 月 26 日
0.7.0 2022 年 11 月 3 日
0.1.9 2020 年 7 月 10 日

#1708编码 中排名

Download history 939/week @ 2024-03-14 330/week @ 2024-03-21 620/week @ 2024-03-28 968/week @ 2024-04-04 589/week @ 2024-04-11 607/week @ 2024-04-18 356/week @ 2024-04-25 359/week @ 2024-05-02 518/week @ 2024-05-09 534/week @ 2024-05-16 507/week @ 2024-05-23 565/week @ 2024-05-30 422/week @ 2024-06-06 658/week @ 2024-06-13 490/week @ 2024-06-20 174/week @ 2024-06-27

1,785 次每月下载
8 个crate(6 个直接) 中使用

Apache-2.0/MIT

49KB
1.5K SLoC

simd-json-derive

Latest version documentation License

为高性能 JSON 序列化和反序列化提供派生工具。

用法


#[derive(Serialize, Deserialize, Debug)]
#[simd_json(deny_unknown_fields, rename_all = "camelCase")]
struct MyStruct {
    first_field: String,
    #[simd_json(rename = "foo")]
    second_field: Option<usize>
}

fn main -> Result<(), simd_json::Error> {
    let my_struct = MyStruct {
        first_field: "i am first".to_string(),
        second_field: None
    }
    println!("Before: {my_struct:?}");
    let mut json_string = my_struct.json_string()?;
    let deserialized = MyStruct::from_str(json_string.as_mut_str())?;
    println!("After: {deserialized:?}");
}

支持的属性

支持为 #[simd_json(...)] 和为了兼容性,也支持 #[serde(...)],并且遵循与 serde 相同的命名约定。

对于字段

  • rename = "new_name" - 重命名字段

对于结构体

  • rename_all = "camelCase" - 根据规则重命名所有(未其他重命名的)字段,当前支持 camelCase
  • deny_unknown_fields - 遇到未知字段时出错

依赖关系

~6MB
~105K SLoC