Go語言在處理Web開發的過程中,經常需要返回JSON數據。JSON是Javascript Object Notation的縮寫,是一種輕量級的數據交換格式,被廣泛應用于Web編程。為了方便處理和傳輸數據,Go在標準庫中提供了json包,能夠很輕松地實現JSON數據的解析和生成。
func main() { person := map[string]string{"name": "Tom", "age": "30"} jsonBytes, err := json.Marshal(person) if err != nil { log.Fatal(err) } fmt.Println(string(jsonBytes)) // {"age":"30","name":"Tom"} }
在上面的例子中,我們定義了一個map類型的person,然后使用json.Marshal()將它轉換成JSON格式的字符串。如果轉換成功,在輸出JSON字符串之前我們需要把JSON字節數組轉換成字符串類型。
使用json.Unmarshal()解析JSON數據也非常簡單。下面的例子演示了如何解析JSON格式的字符串然后轉換成Go語言的map類型:
func main() { jsonString := `{"name": "Tom", "age": 30}` var person map[string]interface{} err := json.Unmarshal([]byte(jsonString), &person) if err != nil { log.Fatal(err) } fmt.Println(person["name"]) // Tom fmt.Println(person["age"]) // 30 }
在這個例子中,我們使用了json.Unmarshal()函數將JSON格式的字符串解析成一個空接口類型的map對象。解析的時候需要提供JSON字節數組的引用和一個目標變量的地址。最后,我們通過map對象的鍵值來讀取JSON數據。