序列化-Slice序列化
Slice序列化
首先,创建上面map类型的切片mySlice。
var mySlice []map[string]interface{}
依次创建map,并初始化、赋值,追加到切片中
// 创建map1,初始化,赋值
m1 := make(map[string]interface{})
m1["name"] = "李白"
m1["age"] = 20
m1["addr"] = "莫高窟"
mySlice = append(mySlice, m1)
// 创建map2,初始化,赋值
m2 := make(map[string]interface{})
m2["name"] = "杜子腾"
m2["age"] = 29
m2["addr"] = [3]string{"毛纺厂","方便村","洗手街",}
mySlice = append(mySlice, m2)
由于map是map[string]interface{}类型,因此value可以是任意数据类型,数组也可以。
同样,使用相同的方法进行序列化并查看。
示例代码:
// 封装 slice 序列化测试函数
func sliceSerial() {
// 创建一个 map[string]interface{}类型的 切片
……
// 创建map,初始化,赋值
……
// 将 slice 使用 Marshal() 函数进行序列化
data, err := json.Marshal(mySlice)
if err != nil {
fmt.Println("Marshal err:", err)
return
}
// 查看序列化后的 json 字符串
fmt.Println("slice序列化后 = ", string(data))
}
func main() {
// 测试slice序列化
sliceSerial()
}
输入结果为:slice序列化后 =
[{"addr":"莫高窟","age":20,"name":"李白"},{"addr":["毛纺厂","方便村","洗手街"],"age":29,"name":"杜子腾"}]
可以将这个结果,导入到json在线格式化验证网站中查验。数据正确!