Golang 如果想要按json字符串的形式输出某个对象,先使用 json.Marshal()函数把对象转换成[]byte数组,然后string(obj)强转成字符串后用%v输出,或者直接使用%s输出
对一个对象marshal后,如果 %s 输出能获取到json格式化后的字符串,如果使用 %v 输出,会输出一个字节数组,因为 Marshal() 函数的返回值是一个字节数组。
指针数组,如果直接用 %v 格式化输出,则打印出一个全是地址的数组。其他类型的对象,如果直接使用 %v输出,会打印所有的字段值,但不是json形式的。
func Marshal(v interface{}) ([]byte, error)
marshall:序列化,将字典或者结构体转换成字符串,返回 v 的 json 字符串对应的字节数组。
func Unmarshal(data []byte, v interface{}) error
Unmarshal 解析 JSON 编码的数据并将结果存储在 v 指向的值中。如果 v 为 nil 或不是指针,则 Unmarshal 返回 InvalidUnmarshalError。
unmarshall:反序列化,字符串转换成字典,结构体
参考: https://pkg.go.dev/encoding/json#Unmarshal