Go json.Marshal禁用escapeHtml转义
原创
©著作权归作者所有:来自51CTO博客作者小龙在山东的原创作品,请联系作者获取转载授权,否则将追究法律责任
json.Marshal的escapeHtml默认是关闭的,如何打开呢?
package main
import (
"bytes"
"encoding/json"
"fmt"
)
func main() {
// escapeHtml默认为true: <、>、&会转义
data := "<a>测试 </a>"
bts, _ := json.Marshal(data)
fmt.Println(string(bts)) // "\u003ca\u003e测试\u0026nbsp;\u003c/a\u003e"
// 禁用escapeHtml
bf := bytes.NewBuffer([]byte{})
jsonEncoder := json.NewEncoder(bf)
jsonEncoder.SetEscapeHTML(false)
_ = jsonEncoder.Encode(data)
println(bf.String()) // "<a>测试 </a>"
}