Go语言通过json.Marshal将结构体序列化为JSON,需字段首字母大写并配合json标签;支持omitempty省略空字段、嵌套结构体及time.Time类型,默认输出RFC3339时间格式,可通过json.NewEncoder直接写入HTTP响应,高效返回JSON数据。

在Go语言开发中,经常需要将结构体数据转换为JSON格式返回给前端或第三方服务。这个过程称为序列化,Go标准库encoding/json提供了json.Marshal函数来实现这一功能。只要结构体字段是可导出的(即首字母大写),就能顺利转换。
使用json.Marshal可以将结构体转为JSON字节流,再转成字符串即可返回。
示例:
type User struct {注意json:"name"是结构体标签,用于指定JSON字段名。omitempty表示如果字段为空,序列化时会自动省略。
立即学习“go语言免费学习笔记(深入)”;
结构体中常包含嵌套结构或time.Time类型,也能正常序列化。
type Address struct {time.Time默认输出RFC3339格式(如"2024-05-10T12:00:00Z"),如果需要自定义格式,可封装类型或使用字符串字段。
在Web服务中,通常通过http.ResponseWriter直接写回JSON响应。
func handler(w http.ResponseWriter, r *http.Request) {使用json.NewEncoder(w).Encode更高效,避免中间生成字符串,适合大对象或流式输出。
基本上就这些。掌握json.Marshal和结构体标签就能应对大多数场景。不复杂但容易忽略细节,比如字段导出和标签拼写。
以上就是Golang实战中如何将结构体(struct)序列化为JSON字符串返回的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号