1

如何使用 serde_json 序列化 std::env::vars()

以下工作,但我觉得它可以做得更好:

let mut vars = std::collections::HashMap::new();
for (key, value) in std::env::vars() {
    vars.insert(key, value);
}
json!(vars)
4

1 回答 1

3

返回两个元素元组的迭代器可以被collect编入一个新的HashMap. std::env::vars返回这样一个迭代器(称为Vars),这样就可以在这里工作:

let vars: HashMap<String, String> = std::env::vars().collect();
json!(vars)

除此之外,如果不Serialize直接为Vars. 由于Vars是标准库类型,并且Serialize特征来自外部板条箱,因此您不能这样做。

于 2019-08-21T15:26:52.377 回答