Go语言JSON数据返回的实战案例
在现代 Web 应用中,JSON 已成为前后端通信的主流数据格式。Go 语言标准库内置对 JSON 的良好支持,只需少量代码就能返回结构化的 JSON 响应。
本篇案例将手把手带你完成一个「返回 JSON 数据的 HTTP 接口」,帮助你理解如何用 Go 语言实现后端服务最基础的功能。
一、目标说明
构建一个 HTTP 服务:
请求地址:/hello
请求方式:GET
返回内容:
{
"message": "Hello, Go!",
"status": 200
}
二、核心知识点
net/http:Go 标准 HTTP 库encoding/json:JSON 编解码包http.ResponseWriter:响应写入器http.HandleFunc:注册处理函数
三、完整代码示例
package main
import (
"encoding/json"
"net/http"
)
type Response struct {
Message string `json:"message"`
Status int `json:"status"`
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
// 设置返回头信息
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
// 创建响应结构体
resp := Response{
Message: "Hello, Go!",
Status: 200,
}
// 编码为 JSON 并写入响应
json.NewEncoder(w).Encode(resp)
}
func main() {
http.HandleFunc("/hello", helloHandler)
http.ListenAndServe(":8080", nil)
}
四、运行与测试
1. 运行服务
go run main.go
访问浏览器或使用 curl:
curl http://localhost:8080/hello
2. 响应结果
{
"message": "Hello, Go!",
"status": 200
}
五、快速问答(FAQ)
✅ 为什么要设置Content-Type: application/json?
告诉浏览器或客户端,我们返回的是 JSON 格式数据。
✅json.NewEncoder(w).Encode(...)做了什么?
它将结构体编码为 JSON 并直接写入到 ResponseWriter 输出流。
✅ 如果编码失败会发生什么?
Encode() 会返回 error,可以用 if err != nil 判断并手动写入 500 错误。
六、总结
本案例实现了一个 Go 最小可用的 JSON 接口:
✅ 使用标准库,无需第三方框架
✅ 面向新手,极易上手
✅ 为构建 RESTful API 打下基础
到此这篇关于Go语言JSON数据返回的实战案例的文章就介绍到这了,更多相关Go语言 JSON数据返回内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
golang常用加密解密算法总结(AES、DES、RSA、Sha1、MD5)
在项目开发过程中,当操作一些用户的隐私信息,本文主要主要介绍了golang常用加密解密算法总结(AES、DES、RSA、Sha1MD5),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-04-04
Golang因Channel未关闭导致内存泄漏的解决方案详解
这篇文章主要为大家详细介绍了当Golang因Channel未关闭导致内存泄漏时盖如何解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下2023-07-07
Go依赖注入DI工具wire使用详解(golang常用库包)
依赖注入是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入,本文结合示例代码给大家介绍Go依赖注入DI工具wire使用,感兴趣的朋友一起看看吧2022-04-04


最新评论