本文主要是介绍golang序列化json去除转义字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在解析一个返回值的时候,得到的json格式如下。
{"volume.xx.cn/spec":"ID: \"b9aad132b4df4f07ac78896ab193b6cc\"\nMountpoint: \"/workspace\"\nCapacity: 1073741824\nNFS: \u003c\n\u003e\n"}
这个json是带有转义字符的。去掉这些转义字符。
根据go doc的描述,如果要禁用转义字符需要调用SetEscapeHTML(false)。
// String values encode as JSON strings coerced to valid UTF-8,
// replacing invalid bytes with the Unicode replacement rune.
// So that the JSON will be safe to embed inside HTML <script> tags,
// the string is encoded using HTMLEscape,
// which replaces "<", ">", "&", U+2028, and U+2029 are escaped
// to "\u003c","\u003e", "\u0026", "\u2028", and "\u2029".
// This replacement can be disabled when using an Encoder,
// by calling SetEscapeHTML(false).
// 去除json中的转义字符
func disableEscapeHtml(data interface{}) (string, error) {bf := bytes.NewBuffer([]byte{})jsonEncoder := json.NewEncoder(bf)jsonEncoder.SetEscapeHTML(false)if err := jsonEncoder.Encode(data); err != nil {return "", err}return bf.String(), nil
}
这篇关于golang序列化json去除转义字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!