json转换是后台开发不可避免的,在golang中,需要把json转换成struc或者map,才能获取数据中的具体值,详细代码如下
package main
import (
"encoding/json"
"fmt"
)
// User 用户
type User struct {
Name string
Age int
}
func main() {
//json 转 struct
data := `{"name":"spring","age":18}`
u := &User{}
err := json.Unmarshal([]byte(data), &u)
if nil != err {
fmt.Println(err)
}
fmt.Println("stuct data:", u)
// struct 转json
tmp := &User{Name: "chen", Age: 20}
jsonData, err := json.Marshal(tmp)
if nil != err {
fmt.Println(err)
}
fmt.Println("json Data:", string(jsonData))
// json 转 map
str := `{"name":"TauCrus","age":19}`
mp := make(map[string]interface{})
err = json.Unmarshal([]byte(str), &mp)
if nil != err {
fmt.Println(err)
}
fmt.Println("map data:", mp)
// map 转 json
temp := map[string]interface{}{"name": "Tome", "age": 21}
jd, err := json.Marshal(temp)
if nil != err {
fmt.Println(err)
}
fmt.Println("json Data:", string(jd))
}