序列化-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
发起讨论 只看当前版本


暂无话题~