后端程序员之路 57、go json

时间:2023-02-11 10:33:19

go自带json处理库,位于encoding/json,里面的test很具参考意义,特别是example_test.go

json - The Go Programming Language
https://golang.org/pkg/encoding/json/

GO语言练习:构建json 和 解析JSON 实例 - fengbohello - 博客园
http://www.cnblogs.com/fengbohello/p/4665883.html

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

- Unmarshal
    - 如果JSON中的字段在Go目标类型中不存在,json.Unmarshal() 函数在解码过程中会丢弃该字段
    - 使用map[string]interface{}和[]interface{} 类型的值来分别存放未知结构的JSON对象或数组