最近學習了Golang,覺得它實現(xiàn)JSON格式非常方便,下面看看它是如何實現(xiàn)的:
import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { person := Person{Name: "張三", Age: 18} bytes, _ := json.Marshal(person) fmt.Println(string(bytes)) }
在上面的代碼中,我們定義了一個Person結構體,并通過json:"name"的方式標記出JSON中傳輸時的鍵名,這樣在JSON編碼時就會將名稱變成name。然后我們再將person實例轉化為JSON格式,最后輸出字符串。
如果我們想要將JSON轉換回結構體的數(shù)據(jù)類型,也非常簡單:
func main() { bytes := []byte(`{"name":"張三","age":18}`) person := &Person{} json.Unmarshal(bytes, person) fmt.Println(person) }
在這里,我們可以使用json.Unmarshal()方法將JSON數(shù)據(jù)解碼為結構體。我們需要傳遞一個JSON字節(jié)切片以及結構體指針,這樣JSON將自動被解析并填充到person實例中。
總而言之,Golang實現(xiàn)JSON方便快捷,只需幾行代碼就可以完成將JSON數(shù)據(jù)編碼為結構體和解碼回結構體的操作。