SetEscapeHTML()
を使う。
b = new(bytes.Buffer) enc = json.NewEncoder(b) enc.SetEscapeHTML(false) enc.Encode("&<>") fmt.Println(b.String()) //=> "&<>"
Go の json パッケージは &, <, > をエスケープする。 *json.Encoder.SetEscapeHTML() に false を渡すとエスケープを抑止できる。 json.Marshal()
では無理なので Encoder を使う必要がある。
https://golang.org/pkg/encoding/json/#Encoder.SetEscapeHTML
実験結果