Go語言基礎:JSON


近年來,JSON 作為跨應用程式傳輸資料的格式越來越受歡迎。JSON(JavaScript 物件表示法)是一種緊湊且易於理解的資料交換標準。它廣泛應用於伺服器到伺服器通訊、移動應用程式和 Web 應用程式。

GoLang 是一種功能強大的程式語言,其簡潔性、併發性和可擴充套件性使其脫穎而出。本文將介紹 GoLang 中 JSON 的基礎知識。

什麼是 JSON?

JSON 是一種簡單、輕量級的資料交換格式,易於人類和機器閱讀和生成。它是一種完全與語言無關的文字格式,遵循 C 系列語言程式設計師熟悉的原則。

JSON 中主要有兩種結構型別:物件和陣列。物件是鍵值對的無序集合,其中鍵為字串,值可以是任何 JSON 資料型別。陣列是以有序方式儲存值的集合,可以包含任何有效的 JSON 資料型別。

使用 GoLang 編碼 JSON

我們可以使用 GoLang 提供的內建“encoding/json”包來編碼和解碼 JSON 資料。為了將 GoLang 資料編碼成 JSON 格式,我們需要建立一個與 JSON 物件對映的結構體。

例如,考慮一個名為“Person”的結構體。它有兩個欄位:“Name”和“Age”。

type Person struct {
   Name string `json:"name"`
   Age int `json:"age"`
}

要將此結構體編碼成 JSON 格式,我們可以使用“json.Marshal”函式。

示例

package main

import (
   "encoding/json"
   "fmt"
)

type Person struct {
   Name string `json:"name"`
   Age  int    `json:"age"`
}

func main() {
   p := Person{Name: "Asmitha", Age: 25}
   b, err := json.Marshal(p)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(string(b))
}

輸出

{"name":"Asmitha","age":25}

使用 GoLang 解碼 JSON

使用“json.Unmarshal”函式,我們可以將 JSON 資料轉換為 GoLang 格式。此函式需要一個指向我們想要對映 JSON 物件的結構體的指標,以及一個包含 JSON 資料的位元組切片。

例如,考慮一個表示名為“Person”的實體的 JSON 字串。

jsonStr := `{"name":"Asmitha","age":25}`

要將此 JSON 字串解碼為“Person”結構體,我們可以使用以下程式碼:

示例

package main

import (
   "encoding/json"
   "fmt"
)

type Person struct {
   Name string `json:"name"`
   Age  int    `json:"age"`
}

func main() {
   var p Person
   jsonStr := `{"name":"Asmitha", "age":25}`
   err := json.Unmarshal([]byte(jsonStr), &p)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(p.Name, p.Age)
}

輸出

Asmitha 25

處理 JSON 陣列

JSON 中的陣列是一組有序的值。在 GoLang 中,可以使用切片來表示 JSON 陣列。

例如,讓我們使用一個 JSON 數字陣列。

jsonStr := `[1, 2, 3, 4, 5]`

要將此 JSON 陣列解碼為整數切片,我們可以使用以下程式碼:

示例

package main

import (
   "encoding/json"
   "fmt"
)

func main() {
   jsonStr := "[1, 2, 3, 4, 5]"
   var numbers []int
   err := json.Unmarshal([]byte(jsonStr), &numbers)
   if err != nil {
      fmt.Println("error:", err)
   }
   fmt.Println(numbers)
}

輸出

[1 2 3 4 5]

結論

JSON 是一種流行的資料交換格式,GoLang 提供了一種簡單有效的方法來處理 JSON 資料。在本文中,我們介紹了使用 GoLang 編碼和解碼 JSON 資料以及如何處理 JSON 陣列的基礎知識。掌握這些知識將使您能夠輕鬆地將 JSON 整合到您的 GoLang 應用程式中並進行通訊。

更新於: 2023年4月6日

358 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告