JSON(Javascript Object Notation)已经成为了一种非常流行的数据交换格式,golang 自然不会忽视对 json 的支持,golang 自带的标准库就可以方便的处理 json。另外,推荐一种号称全世界最快的 JSON 解析器 -- jsoniter。
简介
json 中提供的处理 json 的标准包是 encoding/json,主要使用的是以下两个方法:
//序列化
func Marshal(v interface{}) ([]byte, error)//反序列化
func Unmarshal(data []byte, v interface{}) error
序列化前后的数据结构有以下的对应关系:
bool, forJSON booleans
float64,forJSON numbers
string,forJSON strings
[]interface{},forJSON arrays
map[string]interface{},forJSON objects
nilfor JSON null
这个内置的标准库用起来还是比较麻烦,要知道对方发过来的type,不然只能自己分析反射.
Unmarshal
这是一个反序列化的过程,将 JSON 串重新组装成结构体。
已知解析类型
示例代码如下:
package mainimport("encoding/json"
"fmt")
type Animal struct {
Name string
Order string
}