如何在golang中的字符串(JSON格式)中转义字符

时间:2018-08-05 06:20:49

标签: json go escaping

JSON specification要求仅转义字符串中字符的惯用方式是什么。

(我不是试图封送/解组对象或字符串,我只是想转义字符串中的字符。

这有效,但是肯定还有一种惯用的方式吗? 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)
    }
    s := string(b)
    return s[1:len(s)-1] // Trim the beginning and trailing " character
}

1 个答案:

答案 0 :(得分:0)

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

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

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

检查String literals部分。