【发布时间】:2018-01-05 06:38:51
【问题描述】:
我有两个结构:
#[derive(Serialize)]
struct Post {
title: String,
// ...more fields...,
comments: Vec<Comment>,
}
#[derive(Serialize)]
struct Comment {
body: String,
// ...more fields...,
}
我要生成2种JSON文件:
-
Vec<Post>的 JSON 索引应包括除comments之外的所有字段。 -
Post的 JSON,包含所有字段。
是否可以使用 Serialize 派生属性来实现这一点?我在 Serde 的文档中找到了 skip_serializing_if 属性,但据我所知,它对我没有用,因为我想跳过不是基于字段的值,而是基于我正在生成的 JSON 文件。
现在我正在使用json! 宏生成索引,这需要手动列出Post 的所有字段,但我希望有更好的方法来做到这一点。
【问题讨论】: