在Go語言中,解析JSON格式數據非常方便。Go語言提供了標準庫中的encoding/json包,讓我們可以輕松地對JSON數據進行解析和生成。
下面是一個JSON數據的例子:
{ "name": "Tom", "age": 20, "isStudent": true, "hobby": ["reading", "swimming"] }
我們可以使用json.Unmarshal()函數將JSON字符串解析成一個結構體或者map。
type Student struct { Name string Age int IsStudent bool Hobby []string } func main() { jsonStr := `{"name":"Tom","age":20,"isStudent":true,"hobby":["reading","swimming"]}` var s Student err := json.Unmarshal([]byte(jsonStr), &s) if err != nil { // 解析失敗,處理錯誤 return } // 打印解析后的結果 fmt.Println(s.Name) fmt.Println(s.Age) fmt.Println(s.IsStudent) fmt.Println(s.Hobby) }
上面的代碼中,我們定義了一個Student結構體,然后使用json.Unmarshal()函數把JSON字符串解析成Student結構體對象。如果解析失敗,函數會返回一個非空的錯誤對象。我們可以根據錯誤對象來處理錯誤。
解析成功后,我們可以像訪問普通結構體一樣訪問Student對象中的字段。
編寫JSON數據并將其轉換成字符串也非常簡單。我們可以使用json.Marshal()函數將結構體或者map轉換成JSON字符串。
s := Student{ Name: "Tom", Age: 20, IsStudent: true, Hobby: []string{"reading", "swimming"}, } jsonBytes, err := json.Marshal(s) if err != nil { // 處理錯誤 return } jsonStr := string(jsonBytes) fmt.Println(jsonStr)
上面的代碼中,我們定義了一個Student結構體對象,并使用json.Marshal()函數將其轉換成JSON字符串。如果轉換失敗,函數會返回一個非空的錯誤對象。我們可以根據錯誤對象來處理錯誤。
在Go語言中,處理JSON數據非常簡單,我們只需要使用標準庫中的encoding/json包即可。對于一些特殊的需求,我們也可以使用第三方的JSON包。