Go語言對于處理JSON格式的數據有著非常好的支持,其中最常用的庫就是標準庫中的encoding/json。
使用encoding/json庫解析JSON數據非常簡單,只需要定義一個結構體,然后使用json.Unmarshal()函數將JSON數據解析成結構體對象即可。
type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr := `{"name":"Tom", "age":18}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("json unmarshal failed: ", err) return } fmt.Println("name: ", p.Name, ", age: ", p.Age) }
上面的代碼中,我們定義了一個Person結構體,其中Name和Age字段分別對應JSON數據中的"name"和"age"字段。然后我們使用json.Unmarshal()函數將JSON數據解析成Person對象,并將解析結果存入變量p中。
對于需要將數據轉換成JSON格式的場景,我們可以使用json.Marshal()函數將結構體對象轉換成JSON字符串。
func main() { p := Person{Name: "Tom", Age: 18} data, err := json.Marshal(p) if err != nil { fmt.Println("json marshal failed: ", err) return } fmt.Println(string(data)) }
上面的代碼中,我們定義了一個Person對象p,然后使用json.Marshal()函數將p對象轉換成JSON字符串,并將結果打印出來。
除了上述基本的用法外,encoding/json庫還提供了豐富的選項和擴展接口,可以滿足各種復雜的JSON數據解析和生成需求。