序列化-Map序列化
Map 序列化#
Map 序列化的大致流程与结构体一致。首先也要先创建 map 变量。如:
var m map[string]interface{}
key 值为 string,value 可以是任意数据。但此 m 不能直接存储数据!必须使用 make 开辟空间再使用。
m = make(map[string]interface{})
// 赋值
m["name"] = "大晕头"
m["sal"] = 3141.59
m["age"] = 27
m["addr"] = "北京朝阳"
同样,使用序列化函数 json.Marshal () 可以将 m 完成序列化。由于 m 是引用可以直接传递。
示例代码:
// 封装 map 序列化测试函数
func mapSerial() {
// 定义map变量
var m map[string]interface{}
// 初始化map,获取空间
m = make(map[string]interface{})
// 赋值
m["name"] = "大晕头"
m["sal"] = 3141.59
m["age"] = 27
m["addr"] = [2]string{"北京朝阳", "天津南开"}
// 将 map 使用 Marshal() 函数进行序列化
data, err := json.Marshal(m) // map本身为引用。
if err != nil {
fmt.Println("Marshal err:", err)
return
}
// 查看序列化后的 json 字符串
fmt.Println("map序列化后 = ", string(data))
}
func main() {
// 测试map序列化
mapSerial()
}
输入结果为:
map 序列化后 = {"addr":["北京朝阳","天津南开"],"age":27,"name":"大晕头","sal":3141.59}
由于 map 是无序存储,因此查询序列化后的结果,可以与定义的顺序不一致。
推荐文章: