我有一个serde_json::Value
包含我想修改的字符串,如果可能的话不克隆字符串。我想你会这样做:
let mut value = Value::String("Hello world".to_string());
let mut string = value.as_mut_string().unwrap();
string.push('!');
但是没有这样的东西as_mut_string
。我可以这样做:
let mut value = Value::String("Hello world".to_string());
let mut string = value.as_str().unwrap().to_string();
string.push('!');
value = Value::String(string);
但是,这既是丑陋的代码又是低效的,因为我必须克隆字符串。有更好的解决方案吗?