如果变量的值为空,则跳过变量的序列化? (自定义序列化)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果变量的值为空,则跳过变量的序列化? (自定义序列化)相关的知识,希望对你有一定的参考价值。

如果值为空,我想跳过Token变体的序列化。

impl<'a> Serialize for UriParam<'a> {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
        where S: Serializer
    {
        match self {
            &UriParam::Token(ref token) => {
                if !token.is_empty() {
                    serializer.serialize_some(token)
                } else {
                    // what should I return instead?
                }
            },
            &UriParam::URI(ref uri) => serializer.serialize_some(uri),
            &UriParam::Param(ref option) => serializer.serialize_some(option),
        }
    }
}
答案

请尝试以下方法:

serializer.serialize_none()

This serializes None (as opposed to Some)

以上是关于如果变量的值为空,则跳过变量的序列化? (自定义序列化)的主要内容,如果未能解决你的问题,请参考以下文章

oracle 查询条件中判断两个字段相等时 一个字段为空则跳过

如果对象为空,则跳过 for 循环

System.Json - 属性序列化跳过的自定义规则

如果数组为空则跳过foreach的最简洁方法[重复]

请求参数存在空值是啥意思

ORACLE查询条件为空,则跳过该条件。