欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語言JSON數(shù)據(jù)返回的實戰(zhàn)案例

 更新時間:2025年08月14日 10:12:54   作者:程序員愛釣魚  
本文介紹用Go標準庫構建返回JSON的HTTP接口,包括GET請求處理、JSON編碼及響應設置,為RESTful API開發(fā)打下基礎,感興趣的可以了解一下

在現(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)

    這篇文章主要介紹了Golang 如何判斷數(shù)組某個元素是否存在 (isset),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • GO實現(xiàn)基于命令行的簡單IPS程序代碼

    GO實現(xiàn)基于命令行的簡單IPS程序代碼

    本文介紹了入侵防御系統(tǒng)IPS的工作原理和實現(xiàn),IPS通過網(wǎng)絡流量監(jiān)控和實時響應,防止網(wǎng)絡攻擊,通過使用Go語言實現(xiàn)一個簡單的IPS示例程序,展示了如何獲取本地IP地址和探測網(wǎng)絡中其他設備的IP地址,包括如何定義和加載規(guī)則文件,以及如何檢測IP對相應端口的訪問是否達到規(guī)定閾值
    2024-12-12
  • Golang10進制轉16進制的幾種方法代碼示例

    Golang10進制轉16進制的幾種方法代碼示例

    這篇文章主要給大家介紹了關于Golang10進制轉16進制的幾種方法,進制轉換是Golang的一些基本操作,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • go貨幣計算時如何避免浮點數(shù)精度問題

    go貨幣計算時如何避免浮點數(shù)精度問題

    在開發(fā)的初始階段,我們經(jīng)常會遇到“浮點數(shù)精度”和“貨幣值表示”的問題,那么在golang中如何避免這一方面的問題呢,下面就跟隨小編一起來學習一下吧
    2024-02-02
  • golang解析xml的方法

    golang解析xml的方法

    這篇文章主要介紹了golang解析xml的方法,結合實例形式分析了Go語言針對xml文件的讀取與解析的相關技巧,需要的朋友可以參考下
    2016-07-07
  • golang實現(xiàn)ftp實時傳輸文件的案例

    golang實現(xiàn)ftp實時傳輸文件的案例

    這篇文章主要介紹了golang實現(xiàn)ftp實時傳輸文件的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 一文帶你掌握Golang中panic與recover的使用方法

    一文帶你掌握Golang中panic與recover的使用方法

    這篇文章主要介紹了Golang中panic與recover的作用和使用方法,文中的示例代碼講解詳細,具有一定的學習價值,需要的小伙伴可以參考一下
    2023-04-04
  • golang模擬TCP粘包和拆包

    golang模擬TCP粘包和拆包

    粘包是指在發(fā)送多個小的數(shù)據(jù)包時,接收端會將這些數(shù)據(jù)包合并成一個數(shù)據(jù)包接收,拆包是指發(fā)送的數(shù)據(jù)包在傳輸過程中被分割成多個小包,下面我們來看看go如何模擬TCP粘包和拆包吧
    2024-12-12
  • Golang數(shù)組的傳遞詳解

    Golang數(shù)組的傳遞詳解

    今天小編就為大家分享一篇關于Golang數(shù)組的傳遞詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Go語言對接微信支付與退款指南(示例詳解)

    Go語言對接微信支付與退款指南(示例詳解)

    在互聯(lián)網(wǎng)技術日益發(fā)展的背景下,Go語言憑借并發(fā)處理能力,在后端開發(fā)中大放異彩,本文詳細介紹如何使用Go語言對接微信支付,完成支付和退款功能,包括準備工作、初始化微信支付客戶端、實現(xiàn)支付功能,以及處理支付回調(diào)和退款等
    2024-10-10

最新評論