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

如何在 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)
}
|
登入後複製
上面的程式碼片段會輸出以下結果:
實戰案例
在許多實際場景中需要將Go 類型編碼為JSON,例如:
- 建構HTTP API
- 儲存資料到JSON 檔案中
- 在分散式系統中傳輸資料
相反,從JSON 編碼解碼Go 類型也有很多實際應用,例如:
- 解析HTTP API 回應
- 從JSON 檔案讀取資料
- 從分散式系統接收資料
以上是如何在 Golang 中編碼 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!