簡體   English   中英

如何修改 serde_json::Value::String 中的字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM