type animal struct {
	name string
	age int
}

func main(){
	ani := animal{
		name: "lcq",
		age:  23,
	}
	marshal, err := json.Marshal(ani)
	if err != nil {
		fmt.Println("err:", err)
		return
	}
	fmt.Println(string(marshal))
}

序列化后的结果为:

{}


主要原因在于属性外小写的,外部的包无法进行访问,将字段名改为大写即可了。

type animal struct {
	Name string
	Age int
}

func main(){
	ani := animal{
		Name: "lcq",
		Age:  23,
	}
	marshal, err := json.Marshal(ani)
	if err != nil {
		fmt.Println("err:", err)
		return
	}
	fmt.Println(string(marshal))
}