在Go語言中,我們常常需要將JSON數據轉換為字符串或將字符串轉換為JSON數據,這時候就需要使用json和string轉換函數。
首先,我們來看一下如何將JSON數據轉換為字符串。Go語言的json包提供了Marshal函數,可以將一個對象編碼為JSON格式的數據,返回一個[]byte類型的字節數組。
func Marshal(v interface{}) ([]byte, error)
示例代碼:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { person := Person{Name: "Tom", Age: 18} jsonData, err := json.Marshal(person) if err != nil { fmt.Println(err) return } fmt.Println(string(jsonData)) }
輸出結果:
{"name":"Tom","age":18}
接下來,我們看一看如何將字符串轉換為JSON數據。Go語言的json包提供了Unmarshal函數,可以將一個JSON格式的字符串解碼為一個對象。
func Unmarshal(data []byte, v interface{}) error
示例代碼:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr := `{"name":"Tom","age":18}` person := Person{} err := json.Unmarshal([]byte(jsonStr), &person) if err != nil { fmt.Println(err) return } fmt.Println(person) }
輸出結果:
{Tom 18}
以上就是Go語言中json和string轉換的基本用法。需要注意的一點是,在進行string到JSON數據的轉換時,使用Unmarshal函數需要傳入target對象的指針。