package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"strings"
)
//HTMLEscape 函数将添加Buffer中的特殊字符串进行转义(Buffer中本来就有的字节不会转义只会转义后来添加的)
//Compact 对这些特殊字符不进行转义 但是有一个作用就是在拼接字符串时 如果后面的字符串有问题那么不添加到Buffer中相当于自动帮我们检查了
//Compact 是个很有用的函数试想一下如果不用Compact直接拼接字符串那么如果其中第n个json串格式有问题就会导致后面所有的json串无法解析
//而使用了Compact来解析 假如拼接到第n个json串有问题会直接抛弃这个json串而不会去影响到后面json串的解析
//比如例子中errJson字符串的格式是有问题的 通过Compact会自动检查所以最后输出的结果是不包含errJson的
//特殊字符都有<, >, &, U+2028 and U+2029 转义成 \u003c, \u003e, \u0026, \u2028, \u2029
func main() {
buf := bytes.NewBufferString("")
str := `{"Name":"<wujunbin>", "Age":21}`
errJson := `{Name:"<wujunbin>", "Age":21}`
//拼接json串
fmt.Println(json.Compact(buf, []byte(str)))
fmt.Println(json.Compact(buf, []byte(errJson)))
bufEscape := bytes.NewBufferString("")
//拼接转义的json串 但是不会帮你检查错误
jso
Go_Json_HTMLEscape_Compact
最新推荐文章于 2023-05-10 17:34:15 发布
该博客主要介绍了Go语言中`json`包的`HTMLEscape`和`Compact`两个函数。`HTMLEscape`用于转义特殊字符,而`Compact`则在拼接JSON字符串时能自动检查并忽略格式错误的部分,确保后续JSON串的正确解析。示例代码展示了如何使用这两个函数,并通过一个例子解释了`Compact`的实用价值。
摘要由CSDN通过智能技术生成