#反序列化 #json #变体 #null # #选项 #未定义

js_option

一个具有独立 null 和 undefined 变体的 Option 类似类型

2 个版本

0.1.1 2022 年 6 月 18 日
0.1.0 2021 年 5 月 10 日

#862解析器实现

Download history • Rust 包仓库 2444/week @ 2024-03-14 • Rust 包仓库 2822/week @ 2024-03-21 • Rust 包仓库 2867/week @ 2024-03-28 • Rust 包仓库 2265/week @ 2024-04-04 • Rust 包仓库 2221/week @ 2024-04-11 • Rust 包仓库 3232/week @ 2024-04-18 • Rust 包仓库 3202/week @ 2024-04-25 • Rust 包仓库 3517/week @ 2024-05-02 • Rust 包仓库 2982/week @ 2024-05-09 • Rust 包仓库 2526/week @ 2024-05-16 • Rust 包仓库 2635/week @ 2024-05-23 • Rust 包仓库 2437/week @ 2024-05-30 • Rust 包仓库 2482/week @ 2024-06-06 • Rust 包仓库 2787/week @ 2024-06-13 • Rust 包仓库 2613/week @ 2024-06-20 • Rust 包仓库 1967/week @ 2024-06-27 • Rust 包仓库

10,266 每月下载量
用于 45 个 crates (3 直接)

MIT 许可证

10KB
139

js_option

此crate提供了一种类型 JsOption,它与标准库的 Option 类型非常相似,但它有三种变体

  • Some(value):类似于 Option::Some
  • Null:显式地不是某个值
  • Undefined:隐式地不是某个值

此类型在您想要将 JSON 反序列化为 Rust 结构体而不丢失信息时非常有用:常规的 Option 从显式的 null 或缺少字段反序列化为 None(这是由于 OptionDeserializeSerialize derive 宏中的特殊处理,对于其他类型,如果缺少字段,则反序列化将失败,除非存在 #[serde(skip)]#[serde(skip_deserializing)]#[serde(default)] 属性)。

示例

# extern crate serde_crate as serde;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct MyStruct {
    #[serde(default, skip_serializing_if = "JsOption::is_undefined")]
    my_field: JsOption<String>,
}

许可证

MIT

依赖项

~170KB