Go語言中的 map 數據結構是一種非常常用的數據類型。而將 map 轉換成 JSON 格式的數據則是我們平時編寫代碼時經常遇到的需求。在Go語言中,使用內置的 json 包即可實現 map 轉換成 JSON 格式。具體方法如下:
package main import ( "encoding/json" "fmt" ) func main() { mapData := make(map[string]interface{}) mapData["name"] = "John" mapData["age"] = 30 mapData["isMale"] = true jsonData, err := json.Marshal(mapData) if err != nil { fmt.Println("Error in marshalling map to json: ", err) } fmt.Println(string(jsonData)) }
上述代碼中,我們首先創(chuàng)建一個含有多個 key-value 對的 map。接著我們調用 json.Marshal() 函數將該 map 轉換成 JSON 格式的數據。得到的 jsonData 實際上是一個 byte 類型的數據,我們可以使用 string() 函數將其轉換成字符串形式輸出。
若我們想要將已經轉換成 JSON 格式的 byte 類型數據還原成 map 結構,也可以通過以下代碼實現:
jsonStr := `{"name":"John","age":30,"isMale":true}` var jsonData map[string]interface{} err := json.Unmarshal([]byte(jsonStr), &jsonData) if err != nil { fmt.Println("Error in unmarshalling json to map: ", err) } fmt.Println(jsonData)
這里我們創(chuàng)建了一個 JSON 格式的字符串。接著調用 json.Unmarshal() 函數,將該字符串還原成 map 結構。注意,jsonData 變量必須提前進行聲明。
總結起來,Go語言中的 json 包提供了非常方便的 map 轉換成 JSON 格式的功能。正如示例代碼所演示的,只需幾行代碼即可輕松實現。