Avatar ·

如何在Go中序列化为JSON时隐藏结构体字段

大家好!我刚开始学习Go,在处理JSON时遇到了一个问题。我有一个`User`结构体,包含很多字段,但在API的JSON响应中,我只需要返回其中一部分。例如,我不想显示密码和内部用户ID。 这是我的代码: ```go type User struct { ID int `json:"id"` Name string `json:"name"` Email string `json:"email"` Password string `json:"password"` InternalID string `json:"internal_id"` } func main() { user := User{ ID: 1, Name: "伊万", Email: "ivan@example.com", Password: "secret123", InternalID: "int-001", } jsonData, _ := json.Marshal(user) fmt.Println(string(jsonData)) // 输出:{"id":1,"name":"伊万","email":"ivan@example.com","password":"secret123","internal_id":"int-001"} } ``` 我希望JSON响应中只包含`id`、`name`和`email`,而`password`和`internal_id`不被序列化。