Go:JSON

Go:JSON

JSON

json.Marshal()

默认转换规则:
1.布尔型转换为 JSON 后仍是布尔型 , 如 true -> true
2.浮点型和整数型转换后为 JSON 里面的常规数字,如 1.23 -> 1.23
3.字符串将以 UTF-8 编码转化输出为 Unicode 字符集的字符串,特殊字符比如<将会被转义为\u003c

4.数组和切片被转换为 JSON 里面的数组,[]byte 类会被转换为 base64 编码后的字符串,slice 的零值被转换为 null
5.结构体会转化为 JSON 对象,并且只有结构体里边以大写字母开头的可被导出的字段才会被转化输出,而这些可导出的字段会作为 JSON 对象的字符串索引
6.转化一个 map 类型的数据结构时,该数据的类型必须是 map[string]T(T 可以是 encoding/json 包支持的任意数据类型)


json.Unmarshal()

注意:如果 JSON 中的字段在 Go 目标类型中不存在,json.Unmarshal() 函数在解码过程中会丢弃该字段。
未知类型,遵循规则:
1.JSON 中的布尔值将会转换为 Go 中的 bool 类型
2.数值会被转换为 Go 中的 float64 类型
3.字符串转换后还是 string 类型
4.JSON 数组会转换为[]interface{} 类型
5.JSON 对象会转换为 map[string]interface{}类型
6.null 值会转换为 nil

Author

Jaco Liu

Posted on

2020-02-27

Updated on

2025-12-24

Licensed under