【问题标题】:How to build json arrays or objects dynamically with serde_json?如何使用 serde_json 动态构建 json 数组或对象?
【发布时间】:2020-03-21 15:45:36
【问题描述】:

我需要在运行时构建一个 json 对象。现在,只是一个简单的 {"key": "stringvalue"} 对象。但是每个 key/val 对都必须循环添加。

这看起来很简单/基本,但我没有找到任何好的例子或文档。我终于设法让某些东西发挥作用,但它似乎太复杂了,不是正确的方法。

任何人都可以发布一个工作示例吗?

【问题讨论】:

  • 请解释更多,我认为您可以创建一个哈希图或结构并将其序列化。你做错了。

标签: rust serde serde-json


【解决方案1】:

您可以使用serde_json::Value

use serde_json::{Map, Value};

let mut map = Map::new();

// assuming keys_vals is a Vec<(String, String)>
for (key, val) in keys_vals.into_iter() {
    map.insert(key, Value::String(val));
}

let obj = Value::Object(map);

如果您需要构建对象并仍然更新地图:

let mut obj = Value::Object(map);

if let Value::Object(ref mut map) = obj {
    map.insert(key, val);
}

【讨论】:

    猜你喜欢
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2011-10-11
    • 2014-12-13
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多