Go slice初始化转换json
切片slice的声明和初始化 , 如果我们只是单纯的声明 var list []string , 那么list现在是nil , 转换成json后会变成null,
声明后使用了append函数增加了数据 , 那么就是正常的列表了. 我们看一段代码示例:
package main import ( "encoding/json" "fmt" ) func main() { var list []string bytes, e := json.Marshal(list) if e != nil { fmt.Println("json序列化失败", e.Error()) } else { fmt.Println(string(bytes)) } //可以使用下面的形式初始化0个元素的切片slice , 转换成json会是[] var list2 = []string{} //字面量初始化 //或者 //list:=make([]string,0)//make函数初始化 bytes2, e := json.Marshal(list2) if e != nil { fmt.Println("json序列化失败", e.Error()) } else { fmt.Println(string(bytes2)) } // 在切片里边定义map类型 mSlice := make([]map[string]interface{}, 0) //mSlice = append(mSlice, map[string]interface{}{"name": "babala"}) bytes3, e := json.Marshal(mSlice) if e != nil { fmt.Println("json序列化失败", e.Error()) } else { fmt.Println(string(bytes3)) } }
输出:
null [] []
json_Marshal函数可以对切片,结构体和map转json.