我有一个用 Rust 编写的服务器,该服务器获取 JSON 格式的请求,服务器获取的 JSON 是一个字符串,有时用户在值内写引号。例如,在创建新论坛主题时。
我真正需要做的唯一一件事就是转义值内的引号。
所以这:
"{"name":""test"", "username":"tomdrc1", "date_created":"07/12/2019", "category":"Developer", "content":"awdawdasdwd"}"
需要变成这样:
"{"name":"\"test\"", "username":"tomdrc1", "date_created":"07/12/2019", "category":"Developer", "content":"awdawdasdwd"}"
我试图替换:
let data = let data = "{"name":""test"", "username":"tomdrc1", "date_created":"07/12/2019", "category":"Developer", "content":"awdawdasdwd"}".to_string().replace("\"", "\\\"");
let res: serde_json::Value = serde_json::from_str(&data).unwrap();
但它会导致以下错误:线程''在'调用Result::unwrap()
一个Err
值时恐慌:错误(“键必须是字符串”,行:1,列:2)
我怀疑是因为它将字符串转换为以下内容:
let data = "{\"name\":\"\"test\"\", \"username\":\"tomdrc1\", \"date_created\":\"07/12/2019\", \"category\":\"Developer\", \"content\":\"awdawdasdwd\"}"