< 返回版块

c5soft 发表于 2019-11-24 23:21

Tags:serde_json

let mut a=json!({"a":"somthing",”b":10}); 如何让a增加一个成员c,变成:{"a":"somthing",”b":10,"c":"new value"}?

翻遍了serde_json::value::Value的文档,没有找到增加成员的方法。

修改成员是可以的:

*a.pointer_mut("/b").unwrap()=json!({"b1":"good","b2":50}); 这样a变成了:{"a":"somthing","b":{"b1":"good","b2":50}}

评论区

写评论
hkp9527 2019-11-29 14:40

但这个方法效率是很低的,不如去提个pr实现一把 对以下内容的回复:

作者 c5soft 2019-11-25 09:29

@simoin:好使!pub fn as_object_mut(&mut self) -> Option<&mut Map<String, Value>>, 有了Map,就可以插入,删除了。

simoin 2019-11-25 00:24
let mut v = json!({"a":"somthing","b":10});

v.as_object_mut().unwrap().insert("c".to_string(), serde_json::Value::String("new value".to_string()));
1 共 3 条评论, 1 页