Go語言JSON數(shù)據(jù)返回的實戰(zhàn)案例
在現(xiàn)代 Web 應用中,JSON 已成為前后端通信的主流數(shù)據(jù)格式。Go 語言標準庫內(nèi)置對 JSON 的良好支持,只需少量代碼就能返回結構化的 JSON 響應。
本篇案例將手把手帶你完成一個「返回 JSON 數(shù)據(jù)的 HTTP 接口」,幫助你理解如何用 Go 語言實現(xiàn)后端服務最基礎的功能。
一、目標說明
構建一個 HTTP 服務:
請求地址:/hello
請求方式:GET
返回內(nèi)容:
{
"message": "Hello, Go!",
"status": 200
}
二、核心知識點
net/http:Go 標準 HTTP 庫encoding/json:JSON 編解碼包http.ResponseWriter:響應寫入器http.HandleFunc:注冊處理函數(shù)
三、完整代碼示例
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)
// 創(chuàng)建響應結構體
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 格式數(shù)據(jù)。
?json.NewEncoder(w).Encode(...)做了什么?
它將結構體編碼為 JSON 并直接寫入到 ResponseWriter 輸出流。
? 如果編碼失敗會發(fā)生什么?
Encode() 會返回 error,可以用 if err != nil 判斷并手動寫入 500 錯誤。
六、總結
本案例實現(xiàn)了一個 Go 最小可用的 JSON 接口:
? 使用標準庫,無需第三方框架
? 面向新手,極易上手
? 為構建 RESTful API 打下基礎
到此這篇關于Go語言JSON數(shù)據(jù)返回的實戰(zhàn)案例的文章就介紹到這了,更多相關Go語言 JSON數(shù)據(jù)返回內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Golang 如何判斷數(shù)組某個元素是否存在 (isset)
這篇文章主要介紹了Golang 如何判斷數(shù)組某個元素是否存在 (isset),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
一文帶你掌握Golang中panic與recover的使用方法
這篇文章主要介紹了Golang中panic與recover的作用和使用方法,文中的示例代碼講解詳細,具有一定的學習價值,需要的小伙伴可以參考一下2023-04-04

