[英]How to modify a string inside a serde_json::Value::String?
我有一个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);
但是,这既是丑陋的代码又是低效的,因为我必须克隆字符串。 有更好的解决方案吗?
serde_json::value::Value
是一个enum
,你可以模式匹配它:
let mut value = Value::String("Hello world".to_string());
if let Value::String(string) = &mut value {
string.push('!');
}
println!("{:?}", value);
( 永久链接到操场)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.