首页 > 解决方案 > 如何转义字符串中的字符(JSON 格式)

问题描述

什么是仅转义字符串中的字符的惯用方式需要由 JSON 规范转义。

(我不是要编组/解组对象或字符串,我只是想转义字符串中的字符。

这行得通,但肯定有更惯用的方法吗?https://play.golang.org/p/rcHZbrjFyyH

func main() {
    fmt.Println(jsonEscape(`dog "fish" cat`))
    //output: dog \"fish\" cat
}

func jsonEscape(i string) string {
    b, err := json.Marshal(i)
    if err != nil {
        panic(err)
    }
    // Trim the beginning and trailing " character
    return string(b[1:len(b)-1])
}

标签: jsongoescaping

解决方案


我不知道使用反引号`是否是转义字符的最惯用方式,但更具可读性,例如,您可以使用以下内容:

fmt.Println(jsonEscape(`dog "fish" cat`))

https://play.golang.org/p/khG7qBROAIx

检查字符串文字部分。


推荐阅读