反序列化-Slice反序列化
Slice反序列化
实现思路与前面两种的实现完全一致,这里不再赘述。直接参考代码:
// 封装函数测试slice反序列化
func sliceDeserial() {
// 准备反序列化的json字符串
str := `[{"addr":"莫高窟","age":20,"name":"李白"},{"addr":["毛纺厂","方便村","洗手街"],"age":29,"name":"杜子腾"}]`
// 定义slice变量
var slice []map[string]interface{}
err := json.Unmarshal([]byte(str), &slice)
if err != nil {
fmt.Println("Unmarshal err:", err)
return
}
// 查看反序列化结果
fmt.Println("反序列化后:slice =", slice)
}
func main() {
// 测试slice反序列化
sliceDeserial()
}
输出结果为:
slice = [map[addr:莫高窟 age:20 name:李白] map[addr:[毛纺厂 方便村 洗手街] age:29 name:杜子腾]]
特别强调:
反序列化json字符串时,务必确保反序列化传出的数据类型,与之前序列化的数据类型完全一致。