Go語言支持操作各種數據結構,包括JSON。JSON是一種輕量級的數據交換格式,它易于閱讀和編寫,也易于機器解析和生成。在Go中,我們可以使用標準庫中的encoding/json包來對JSON數據進行操作。
在Go中,我們可以將JSON數據解析成結構體,也可以將結構體序列化成JSON數據。對于解析JSON數據,我們可以使用json.Unmarshal函數。該函數接收兩個參數,第一個是要解析的JSON數據,第二個是一個指向目標結構體的指針。以下是一個簡單的示例:
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr := `{"name":"Alice","age":20}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("parse error:", err) return } fmt.Println(p.Name, p.Age) }
在上面的示例中,我們定義了一個Person結構體,并使用json.Unmarshal函數將JSON數據解析成該結構體。注意,我們在結構體中使用了tag來指定JSON字段名,這樣就可以讓解析器知道JSON中的哪個字段對應哪個結構體字段。
對于序列化JSON數據,我們可以使用json.Marshal函數。該函數接收一個結構體作為參數,并將其序列化成JSON數據。以下是一個示例:
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { p := Person{Name: "Alice", Age: 20} data, err := json.Marshal(p) if err != nil { fmt.Println("marshaling error:", err) return } fmt.Println(string(data)) }
在上面的示例中,我們定義了一個Person結構體,并使用json.Marshal函數將其序列化成JSON數據。注意,我們在結構體中使用了tag來指定JSON字段名,這樣就可以讓json.Marshal函數生成正確的JSON數據。
上一篇python 打印時間戳
下一篇python 遍歷表達式