JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,在Web應用中被廣泛應用。JSON的基本格式是 key-value 的鍵值對,對于開發者來說其易讀性和易寫性非常良好,而且在各個編程語言間互相轉換非常方便。
Go語言提供了一個內置的JSON包,用于處理 JSON 格式的數據,能夠將 Go 語言中的結構體或 map 轉換為 JSON 格式的字符串。
下面是一個將 Go 語言中結構體轉換為 JSON 的示例代碼:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { p := Person{"小明", 18} b, err := json.Marshal(p) if err != nil { fmt.Println("JSON format error:", err) return } fmt.Println(string(b)) }
運行以上代碼,將會輸出以下 JSON 格式字符串:
{"Name":"小明","Age":18}
如果要將 JSON 格式字符串轉換為 Go 結構體或 map,將使用到 JSON 包內的 json.Unmarshal() 函數。下面是一個示例代碼:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { str := `{"Name":"小明","Age":18}` var p Person err := json.Unmarshal([]byte(str), &p) if err != nil { fmt.Println("JSON format error:", err) return } fmt.Println(p.Name, p.Age) }
運行以上代碼,將會輸出以下內容:
小明 18
這個示例代碼中,使用了反斜杠來轉義“&”符號,因為pre標簽內不支持該符號。