首頁 > 後端開發 > Golang > 主體

如何在 Golang 中將結構體轉換為 JSON 資料?

WBOY
發布: 2024-06-01 13:01:57
原創
503 人瀏覽過

在 Golang 中,使用 encoding/json 套件可將結構體轉換為 JSON 數據,步驟如下:安裝 encoding/json 套件。定義結構體。使用 json.Marshal() 函數將結構體轉換為 JSON 字串。

如何在 Golang 中将结构体转换为 JSON 数据?

如何在 Golang 中將結構體轉換為 JSON 資料?

在 Golang 中,您可以使用 encoding/json 套件將結構體轉換為 JSON 資料。以下是如何操作:

1. 安裝套件

go get -u encoding/json
登入後複製

2. 定義結構體

type Person struct {
    Name string
    Age  int
}
登入後複製

3 . 轉換為JSON

使用json.Marshal() 函數將結構體轉換為JSON 字串:

import "encoding/json"

func main() {
    person := Person{Name: "John", Age: 30}

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        // 处理错误
    }

    jsonString := string(jsonBytes)
    fmt.Println(jsonString)
}
登入後複製

輸出:

{"Name":"John","Age":30}
登入後複製

實戰案例:REST API

以下是一個實戰案例,展示如何在一個REST API 中將結構體轉換為JSON 資料:

import (
    "encoding/json"
    "net/http"

    "github.com/gorilla/mux"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    router := mux.NewRouter()

    // 路由用于获取单个人的详细信息
    router.HandleFunc("/person/{name}", func(w http.ResponseWriter, r *http.Request) {
        // 从 URL 中获取名称
        name := mux.Vars(r)["name"]

        // 根据名称查询数据库并获取 Person 结构体
        person := getPersonFromDB(name)

        // 将结构体转换为 JSON
        jsonBytes, err := json.Marshal(person)
        if err != nil {
            // 处理错误
        }

        // 将 JSON 发送到客户端
        w.Header().Add("Content-Type", "application/json")
        w.Write(jsonBytes)
    })

    // 启动服务器
    http.ListenAndServe(":8080", router)
}
登入後複製

在這個案例中,當客戶端向/person/{name} 端點發出GET 請求時,伺服器會查詢資料庫、取得一個Person 結構體,然後將結構體轉換為JSON 並傳送到客戶端。

以上是如何在 Golang 中將結構體轉換為 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板