Go語言(golang)在Web開發中十分流行。在golang中,JSON是一種常見的數據傳輸格式。本文將介紹如何使用golang處理JSON數據。
在golang中,處理JSON數據需要使用標準庫的encoding/json。該庫提供了幾個主要的函數:Marshal、Unmarshal和NewEncoder/NewDecoder。
Marshal函數將一個struct轉換為JSON數據:
type Person struct { Name string `json:"name"` Age int `json:"age"` } p := Person{Name: "Alice", Age: 25} bytes, err := json.Marshal(p) if err != nil { panic(err) }
Unmarshal函數將JSON數據解析為一個struct:
var p Person err := json.Unmarshal(bytes, &p) if err != nil { panic(err) }
NewEncoder函數創建一個JSON編碼器,可以將JSON數據寫入一個io.Writer:
w := bytes.NewBuffer(nil) encoder := json.NewEncoder(w) encoder.Encode(p)
NewDecoder函數創建一個JSON解碼器,可以從一個io.Reader中讀取JSON數據:
r := bytes.NewBuffer(bytes) decoder := json.NewDecoder(r) decoder.Decode(&p)
以上是處理JSON數據的基本用法。golang中還提供了一些輔助函數,如json.NewDecoder(r).DisallowUnknownFields()可以用于禁止解析未知的JSON字段,以確保數據的完整性。