【发布时间】:2020-09-18 18:43:57
【问题描述】:
所以我正在用 Rust 编写一个程序(我对它很陌生),它读取一个 json 配置文件并根据输入做一些事情。我已经成功地使用serde_json 解析了 json。我想让用户做的下一件事是能够指定一些高级选项,但我不知道如何解析输入。 默认的 json 看起来像这样:
{
value: true
}
解析 this 可以直接得到这样的结构:
#[derive(Deserialize)]
pub struct Config {
value: bool
}
我将如何为用户添加能够输入bool 或object 的选项:
{
value: {
avanced_value: true
}
}
我试过像这样使用enum,但似乎bool 不能在枚举中使用。
#[derive(Deserialize)]
pub struct Config {
value: ValueEnum
}
#[derive(Deserialize)]
pub enum ValueEnum {
bool,
Config(ValueConfig),
}
#[derive(Deserialize)]
pub struct ValueConfig {
advanced_value: bool
}
我是否遗漏了一些明显的东西,或者我应该重新构建输入 json? 提前 Tnx。
【问题讨论】:
标签: json enums rust serde-json