【问题标题】:How to use serde's skip_serializing_if with empty slices?如何将 serde 的 skip_serializing_if 与空切片一起使用?
【发布时间】:2019-07-16 15:09:14
【问题描述】:

#[serde(skip_serializing_if = "Vec::is_empty")]s 可以为 Vecs 做 #[serde(skip_serializing_if = "Vec::is_empty")],但切片的等价物是什么?

【问题讨论】:

标签: rust serde


【解决方案1】:

切片类型[T] 也有一个is_empty 方法。你可以这样称呼它:

use serde::Serialize;

#[derive(Serialize)]
struct S<'a> {
    #[serde(skip_serializing_if = "<[_]>::is_empty")]
    slice: &'a [String]
}

fn main() {
    let s = S { slice: &[] };
    println!("{}", serde_json::to_string(&s).unwrap());
}

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 2016-02-24
    • 2016-08-11
    • 1970-01-01
    • 2012-05-24
    相关资源
    最近更新 更多