go panic interface conversion interface {} is float64, not int
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)))
推荐指定结构体指针接收反序列化结果,不需要类型断言,逻辑更清晰。
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号