golang json Marshal遇到的字符转义
json Marshal 字符转义
·
使用json.Marshal 如果字符串中含有 < > &字符会出现自动转义问题 不太符合预期输出
| 原始字符 | 转义后 |
| & | \u0026 |
| < | \u003c |
| > | \u003e |
原始的json.marshal会开启EscapeHTML 解决代码如下
package main
import (
"bytes"
"encoding/json"
"fmt"
)
type Test struct {
Data string
}
func main() {
t := Test{Data: "http:// 127.0.0.1/test?name=1&age=3"}
bytes, err := json.Marshal(t)
fmt.Println(string(bytes), err)
bytes, err = JsonMarshal(t)
fmt.Println(string(bytes), err)
}
func JsonMarshal(data any) ([]byte, error) {
bf := bytes.NewBuffer([]byte{})
jsonEncoder := json.NewEncoder(bf)
jsonEncoder.SetEscapeHTML(false)
if err := jsonEncoder.Encode(data); err != nil {
return nil, err
}
return bytes.TrimSpace(bf.Bytes()), nil
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)