Go语言map与json串相互转化
1、Go语言map与json串相互转化
- map转为Json串(本质是string),先把map转为byte数组,再把byte数组转为Json串
- Json串(本质是string)转为map,先把Json串转为byte数组,再把byte数组转为map
package main
import (
"encoding/json"
"fmt"
)
func main() {
//map转为json串(本质是string)
//先把map转为byte数组
//再把byte数组转为json串
DataMap := map[string]int{"a": 1, "b": 2, "c": 3}
marshal, err := json.Marshal(DataMap)
if err != nil {
fmt.Printf("Map转化为byte数组失败,异常:%s\n", err)
return
}
fmt.Printf("Map转化为byte数组成功:%v\n", marshal)
fmt.Printf("byte数组转化为Json串成功:%s\n", string(marshal))
//json串(本质是string)转为map
//先把json串转为byte数组
//再把byte数组转为map
dataStr := `{"a":1,"b":2,"c":3}`
var dataMap map[string]int
err = json.Unmarshal([]byte(dataStr), &dataMap)
if err != nil {
fmt.Printf("Json串转化为Map失败,异常:%s\n", err)
return
}
fmt.Printf("Json串(本质是string)转化为Map成功:%v", dataMap)
}