首頁 > 後端開發 > Golang > 如何在 Golang 中編碼 JSON 資料?

如何在 Golang 中編碼 JSON 資料?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2024-06-03 13:44:56
原創
730 人瀏覽過

在 Go 中編碼 JSON 資料可用以下步驟:使用 json.Marshal 將 Go 類型編碼為 JSON 位元組切片。使用 json.Unmarshal 從 JSON 編碼解碼 Go 類型,將 JSON 位元組切片儲存在 Go 類型中。

如何在 Golang 中编码 JSON 数据?

如何在 Golang 中編碼 JSON 資料?

在 Go 語言中對 JSON 資料進行編碼是可以透過使用 encoding/json 標準函式庫來完成的簡單明了的過程。該函式庫提供了豐富的函數用於將 Go 類型編碼為 JSON,以及從 JSON 編碼中解碼 Go 類型。

編碼 Go 類型為 JSON

要將Go型別編碼為JSON,可以使用 json.Marshal 函數。該函數接受一個 Go 值並傳回其對應的 JSON 編碼的位元組切片。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package main

 

import (

    "encoding/json"

    "fmt"

)

 

type User struct {

    Name  string

    Age   int

    Admin bool

}

 

func main() {

    user := User{Name: "John Doe", Age: 30, Admin: false}

 

    jsonBytes, err := json.Marshal(user)

    if err != nil {

        fmt.Println("Error encoding user:", err)

        return

    }

 

    fmt.Println(string(jsonBytes))

}

登入後複製

上面的程式碼片段會輸出如下JSON:

1

{"Name":"John Doe","Age":30,"Admin":false}

登入後複製

解碼JSON 為Go 類型

要從JSON 編碼解碼一個Go 類型,可以使用json .Unmarshal 函數。此函數接受一個 JSON 編碼的位元組切片,並將對應的值儲存在提供的 Go 類型中。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

package main

 

import (

    "encoding/json"

    "fmt"

)

 

type User struct {

    Name  string

    Age   int

    Admin bool

}

 

func main() {

    jsonBytes := []byte(`{"Name":"John Doe","Age":30,"Admin":false}`)

 

    var user User

    if err := json.Unmarshal(jsonBytes, &user); err != nil {

        fmt.Println("Error decoding user:", err)

        return

    }

 

    fmt.Println(user)

}

登入後複製

上面的程式碼片段會輸出以下結果:

1

{John Doe 30 false}

登入後複製

實戰案例

在許多實際場景中需要將Go 類型編碼為JSON,例如:

  • 建構HTTP API
  • 儲存資料到JSON 檔案中
  • 在分散式系統中傳輸資料

相反,從JSON 編碼解碼Go 類型也有很多實際應用,例如:

  • 解析HTTP API 回應
  • 從JSON 檔案讀取資料
  • 從分散式系統接收資料

以上是如何在 Golang 中編碼 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
golang web mvc 框架該怎麼選
來自於 1970-01-01 08:00:00
0
0
0
使用 golang 還有必要使用 nginx 麼?
來自於 1970-01-01 08:00:00
0
0
0
golang - goroutine 洩漏
來自於 1970-01-01 08:00:00
0
0
0
golang - mac配置gocode + vim自動補齊
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板