package main
import (
"encoding/json"
"log"
)
type Student struct {
Sex string `json:"sex"`
Age int `json:"age"`
}
func main() {
s1 := &Student{
Sex: "s1",
Age: 20,
}
str1, err := json.Marshal(s1)
if err != nil {
log.Fatal(err)
}
var m map[string]interface{}
err = json.Unmarshal(str1, &m)
if err != nil {
log.Fatal(err)
}
log.Printf("%d\n", m["age"].(int))
}
json反序列化成map时,数字默认是float64类型,不是int。
log.Printf("%d\n", int(m["age"].(float64)))
推荐指定结构体指针接收反序列化结果,不需要类型断言,逻辑更清晰。
标签:conversion,log,err,float64,int,json,interface From: https://www.cnblogs.com/WJQ2017/p/18434247