Posts List

golang的坑

1. json.Marshal函数 返回空” {}” 比如 type TestObject struct { kind string `json:"kind"` id string `json:"id, omitempty"` name string `json:"name"` email string `json:"email"` } testObject := TestObject{ "TestObj", "id", "Your name", "email@email.com" } fmt.Println(testObject) b, err := json.Marshal(testObject) fmt.Println(string(b[:])) 结果 : {TestObject id Your name email@email.com} {} 原因: golang中使用字母是否大写定义导出, encoding/json库会忽略非导出的字段。 正确方法: 导出字段使用大写字母开头,如: type TestObject struct { Kind string `json:"kind"` Id string `json:"id, omitempty"` Name string `json:"name"` Email string `json:"email"` } ​