如何在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`不被序列化。