序列化-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 是无序存储,因此查询序列化后的结果,可以与定义的顺序不一致。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
wangchunbo
讨论数量: 0
发起讨论 只看当前版本


暂无话题~