[Go言語] JSONパッケージがHTML文字をエスケープしてしまう問題の解消方法
現象
JSONパッケージで文字列をエンコードすると、HTML文字がエスケープされてしまうようです。
package main
import (
"encoding/json"
"fmt"
"bytes"
)
func main() {
data := "{'a': 'x < y'}"
raw, _ := json.Marshal(data)
fmt.Println(string(raw))
//output: "{'a': 'x \u003c y'}" ← おそらく期待したものではないでしょう
}
解消方法
package main
import (
"encoding/json"
"fmt"
"bytes"
)
func main() {
data := "{'a': 'x < y'}"
var buffer bytes.Buffer
enc := json.NewEncoder(&buffer)
enc.SetEscapeHTML(false)
enc.Encode(data)
fmt.Println(buffer.String())
//output: "{'a': 'x < y'}"
}