[Go] json的html转义问题
目录
环境
- json库:github.com/goccy/go-json
问题
go语言提供了json的编解码包,json字符串作为参数值传输时发现,json.Marshal生成json特殊字符<、>、&会被转义。
package main
import (
"fmt"
json "github.com/goccy/go-json"
)
type Test struct {
Content string
}
func main() {
t := new(Test)
t.Content = "https://www.baidu.com?id=12&test=23"
jsonByte, _ := json.Marshal(t)
fmt.Println(string(jsonByte))
}
输出
{"Content":"https://www.baidu.com?id=12\u0026test=23"}
解决方法
package main
import (
"fmt"
json "github.com/goccy/go-json"
)
type Test struct {
Content string
}
func main() {
t := new(Test)
t.Content = "https://www.baidu.com?id=12&test=23"
jsonByte, _ := json.MarshalWithOption(t, json.DisableHTMLEscape())
fmt.Println(string(jsonByte))
}
输出
{"Content":"https://www.baidu.com?id=12&test=23"}