1. Json格式
var jsonstr = `{
"Code" :"asd",
"data":{
"message":"ok,i'm fine"
}
}`
完整的一条json语句中,字段都为字符串类型,值为基本数据类型:整形、布尔型、字符串等
2. Json转map
在解析json时,通常要用到encoding/json这个包
import{
"encoding/json"
"fmt"
}
json.Unmarshal()方法用作将一个json类型的字节流,序列化成指定的形式,可以为map,也可以为自定义的结构体,需要注意的是,希望被转换的格式需要以指针类型传入
var m = make(map[string]interface{}) // 定义的map value需为interface{}形式,为了方便处理上面的嵌套问题,保证map的嵌套封装
json.Unmarshal([]byte(jsonstr), &m)
m = m["data"].(map[string]interface{}) // 转化成map时,深层嵌套也被封装成了map
fmt.Println(m)
运行结果如下
map[message:ok,i'm fine]
3. map转json
将map或者struct打包成json,用的是json中的marshal方法,返回的是一个字节数组和一个错误类型
var m = make(map[string]interface{})
m["info"] = "ok,i am fine"
x, err := json.Marshal(&m)
if err != nil {
return
}
fmt.Println(string(x))
打印结果
{"info":"ok,i am fine"}