JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。在 Go 語言中,可以使用內置的 encoding/json 包來處理 JSON 數據。
在 encoding/json 包中,主要有兩個函數:Marshal 和 Unmarshal,分別用于將 Go 語言中的結構體轉化為 JSON 格式的字符串,以及將 JSON 格式的字符串轉化為 Go 語言中的結構體。
// Go 語言中的結構體定義 type Person struct { Name string `json:"name"` // 使用標簽指定 JSON 中對應的字段名 Age int `json:"age"` } // 將結構體轉化為 JSON 格式的字符串 p := Person{"Alice", 20} jsonBytes, err := json.Marshal(p) if err != nil { fmt.Println("marshal error: ", err) return } jsonStr := string(jsonBytes) fmt.Println(jsonStr) // 輸出:{"name":"Alice","age":20} // 將 JSON 格式的字符串轉化為結構體 var p1 Person err = json.Unmarshal([]byte(jsonStr), &p1) if err != nil { fmt.Println("unmarshal error: ", err) return } fmt.Println(p1.Name, p1.Age) // 輸出:Alice 20
需要注意的是,在使用 encoding/json 包轉化 JSON 數據時,需要與其在 Go 語言中對應的類型匹配,否則會出現錯誤。同時,在結構體中使用標簽可以指定 JSON 中對應的字段名,這樣更加靈活。