2 个版本
0.1.1 | 2022 年 6 月 18 日 |
---|---|
0.1.0 | 2021 年 5 月 10 日 |
#862 在 解析器实现
10,266 每月下载量
用于 45 个 crates (3 直接)
10KB
139 行
js_option
此crate提供了一种类型 JsOption
,它与标准库的 Option
类型非常相似,但它有三种变体
Some(value)
:类似于Option::Some
Null
:显式地不是某个值Undefined
:隐式地不是某个值
此类型在您想要将 JSON 反序列化为 Rust 结构体而不丢失信息时非常有用:常规的 Option
从显式的 null
或缺少字段反序列化为 None
(这是由于 Option
在 Deserialize
和 Serialize
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>,
}
许可证
依赖项
~170KB