1. 程式人生 > >Go語言中json.Marshal()一直返回[123 125]的解決方法

Go語言中json.Marshal()一直返回[123 125]的解決方法

Go語言中對結構體進行json.Marshal()一直返回[123 125]即“{}”,原因是go中是否可匯出是根據名字首字母是否大寫來確定的,如果結構體某欄位的首字母為小寫則不可匯出,例子如下(注意Student內欄位首字母的大小寫):

不可匯出:

type Student struct {
	age  uint64
	name string
}

func main() {
	s := &Student{
		age:  25,
		name: "Cloud",
	}
	b, _ := json.Marshal(s)
	fmt.Println(b)
}

> [123 125]
可匯出:
type Student struct {
	Age  uint64
	Name string
}

func main() {
	s := &Student{
		Age:  25,
		Name: "Cloud",
	}
	b, _ := json.Marshal(s)
	fmt.Println(b)
}

> [123 34 65 103 101 34 58 50 53 44 34 78 97 109 101 34 58 34 67 108 111 117 100 34 125]