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

问题描述

我有一个serde_json::Value,其中包含我要修改的字符串,如果可能的话,不克隆该字符串。我想你会这样:

<div class="textSection">

  <div class="eng about" id="eng">
    <p>SHEK LEUNG
    </p>
  </div>
  <div class="mandarin about transparent" id="man">
    <p>
      「為Samson畢業後在倫敦創立的品牌
    </p>
  </div>
</div>
<button class="langChange">⥃</button>
</div>

但是没有let mut value = Value::String("Hello world".to_string()); let mut string = value.as_mut_string().unwrap(); string.push('!'); 这样的东西。我可以这样做:

as_mut_string

但是,这既丑陋又效率低下,因为我必须克隆字符串。有更好的解决方案吗?

解决方法

serde_json::value::Valueenum,您可以对其进行模式匹配:

let mut value = Value::String("Hello world".to_string());
if let Value::String(string) = &mut value {
    string.push('!');
}

println!("{:?}",value);

Permalink to the playground

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...