golang 中,将字符串换为 json 格式时,会自动将一些特殊字符添加反斜杠进行转义,如双引号、反斜杠、换行符等。这样做是为了避免这些特殊字符对 json 格式的解析产生干扰。 但有些时候,我们需要将这些转义字符去掉,得到原始的字符串内容。这时可以使用 strconv 包中的 Unquote() 函数。 Unquote() 函数会将字符串中表示转义字符的反斜杠去除,并将实际的字符转义为其对应的 ASCII 字符。如果字符串不是以双引号包裹的,则会返回一个错误。 示例代码如下: ``` package main import ( "fmt" "strconv" ) func main() { jsonStr := `{"name":"golang","version":"1.16"}` fmt.Println(jsonStr) unquotedStr, err := strconv.Unquote(jsonStr) if err != nil { fmt.Println(err) return } fmt.Println(unquotedStr) } ``` 输出结果如下: ``` {"name":"golang","version":"1.16"} {name:golang,version:1.16} ``` 可以看到,经过 Unquote() 处理后,字符串中的双引号已经去掉了,而转义的字符也被正确还原。