gpt4 book ai didi

rust - 如何通过添加附加字段来改变 serde_json 值?

转载 作者:行者123 更新时间:2023-12-03 11:44:13 24 4
gpt4 key购买 nike

所以我有一个来自某处的 serde Value,我想在之后反序列化之前向 Value 添加额外的“字段”。我正在查看文档,但不知道该怎么做。

更具体地说,假设我有一个 HashMap,我想将其值合并到 Value 中。

pub fn merge(v: &Value, fields: &HashMap<String, String>) -> Value

最佳答案

您需要提取 map (在 Value::Object 情况下),复制它(因为您只接受 &Value 输入),更新它,并将其重新包装在 Value::Object 中,例如

pub fn merge(v: &Value, fields: &HashMap<String, String>) -> Value {
match v {
Value::Object(m) => {
let mut m = m.clone();
for (k, v) in fields {
m.insert(k.clone(), Value::String(v.clone()));
}
Value::Object(m)
}
v => v.clone(),
}
}

(如果发生冲突,这将用 fields 覆盖 v 的条目)。

关于rust - 如何通过添加附加字段来改变 serde_json 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65356683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com