Go Json
Json 是一中轻量级的数据交换格式,易与人阅读和编写。
Json易于解析和生成,有效的提升网络传输效率,通常网络在传输时会先将数据(结构体、map等)序列化成json字符串,到接收方得到json字符串时,在反序列化成对应的数据类型。
go提供了json的序列反序列化的接口
package main
import(
"fmt"
"encoding/json"
)
type Stu struct{
ID int32
Name string
age int32
Score map[string]int32
}
func main(){
stu := &Stu{
ID : 01,
Name : "小明",
age : 22,
Score : map[string]int32{
"数学":100,
"音乐":0,
},
}
data,_ := json.Marshal(stu)
fmt.Println(string(data))//输出:{"ID":1,"Name":"小明","Score":{"数学":100,"音乐":0}}
}
注意:这里面age没有输出出来,是因为age首字符是小写,json无权访问,所以讲age该成大写就行了
但是如果想要输出的全部是小写,这就需要tag标签,这里面就是涉及到反射机制,改成如下即可:
type Stu struct{
ID int32 `json:"id"`
Name string `json:"name"`
//age int32 首字母小写无法被json访问
Age int32 `json:"age"`
Score map[string]int32 `json:"score"`
}
输出为
{"id":1,"name":"小明","age":22,"score":{"数学":100,"音乐":0}}
反序列化:
var stu2 = Stu{}
json.Unmarshal(data,&stu2)
fmt.Println(stu2)//输出:{1 小明 22 map[数学:100 音乐:0]}

浙公网安备 33010602011771号