Home  >  Article  >  Backend Development  >  How to convert struct to JSON data in Golang?

How to convert struct to JSON data in Golang?

WBOY
WBOYOriginal
2024-06-01 13:01:57483browse

In Golang, use the encoding/json package to convert the structure into JSON data. The steps are as follows: Install the encoding/json package. Define the structure. Convert the structure to a JSON string using the json.Marshal() function.

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

#How to convert structure to JSON data in Golang?

In Golang, you can use the encoding/json package to convert structures into JSON data. Here's how to do it:

1. Install the package

go get -u encoding/json

2. Define the structure

type Person struct {
    Name string
    Age  int
}

3 . Convert to JSON

Use the json.Marshal() function to convert the structure to a JSON string:

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)
}

Output:

{"Name":"John","Age":30}

Practical case: REST API

The following is a practical case showing how to convert a structure into JSON data in a REST API:

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)
}

In this case , when the client makes a GET request to the /person/{name} endpoint, the server queries the database, obtains a Person structure, and then converts the structure to JSON and sends it to the client.

The above is the detailed content of How to convert struct to JSON data in Golang?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn