Go_Json_HTMLEscape_Compact

该博客主要介绍了Go语言中`json`包的`HTMLEscape`和`Compact`两个函数。`HTMLEscape`用于转义特殊字符,而`Compact`则在拼接JSON字符串时能自动检查并忽略格式错误的部分,确保后续JSON串的正确解析。示例代码展示了如何使用这两个函数,并通过一个例子解释了`Compact`的实用价值。
摘要由CSDN通过智能技术生成
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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值