转换方法如下
1 2 3 4 | //map,slice切片,arr数组类型 转为json json.Marshal() //对json解码转为指定map,slice切片,arr数组等类型 json.Unmarshal() |
map和json互转
1 2 3 4 5 6 7 8 9 10 11 12 13 | //map转json mapData := make(map[string]interface{}) mapData[ "age" ] = 23 mapData[ "name" ] = "七彩悠悠" fmt.Println(mapData) bytes, _ := json.Marshal(mapData) stringData := string(bytes) fmt.Println(stringData) var result map[string]interface{} //json转为map数据结构 json.Unmarshal([]byte(stringData), &result) fmt.Println(result, "--mapData" ) |
运行结果
map[age:23 name:七彩悠悠]
{"age":23,"name":"七彩悠悠"}
slice切片和json互转
1 2 3 4 5 6 7 8 9 10 11 12 13 | //slice切片转json sliceData := make([]interface{}, 0) sliceData = append(sliceData, "七彩悠悠" ) sliceData = append(sliceData, 23) fmt.Println(sliceData) bytes1, _ := json.Marshal(sliceData) stringData1 := string(bytes1) fmt.Println(stringData1) var result1 []interface{} //json转为slice数据结构 json.Unmarshal([]byte(stringData1), &result1) fmt.Println(result1, "--slice" ) |
运行结果
[沉默小管 18]
["沉默小管",18]
Array数组转json
1 2 3 4 5 6 7 8 9 10 11 | //数组转json arrData := [...]interface{}{ "七彩悠悠" , 23} fmt.Println(arrData) bytes2, _ := json.Marshal(arrData) stringData2 := string(bytes2) fmt.Println(stringData2) var result2 [...]interface{} //json转为Array数据结构 json.Unmarshal([]byte(stringData2), &result2) fmt.Println(result2, "--arr" ) |
运行结果
[七彩悠悠 23]
{"age":23,"name":"七彩悠悠"}