go-JSON序列化与反序列化
go-JSON序列化与反序列化
Marshal 在计算机领域中,表示为组织、整理
写接口、存配置、几乎都会碰到 JSON
使用Go 标准库 encoding/json
序列化
把结构体、map、切片等变成 JSON:
- 语法:
json.Marshal(v)
格式化JSON(缩进、好看一点)用 MarshalIndent
反序列化
把 JSON 填进结构体。第二个参数必须是指针:
- 语法:
json.Unmarshal(data, &v)
必须传指针,传值无法修改外部变量
注意问题
- 在json里面,不支持单引号,key和value只能通过双引号
- Go 标准库
encoding/json只会序列化结构体中导出的字段(大写开头)- 如果结构体的字段是大写,那么JSON 序列化时不会包含这个字段