golang序列化json去除转义字符

时间:2025-03-02 13:55:37

 

在解析一个返回值的时候,得到的json格式如下。
 

{"/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 := ([]byte{})
	jsonEncoder := (bf)
	(false)
	if err := (data); err != nil {
		return "", err
	}
	return (), nil
}