在Go語言中,讀取JSON格式的數據可以使用標準庫中的“encoding/json”包。該包提供了Marshal和Unmarshal兩個函數,可以實現從JSON格式數據與Go類型之間的相互轉換。
下面是一個示例代碼,演示如何讀取JSON數據:
package main import ( "encoding/json" "fmt" "log" ) type User struct { ID int `json:"id"` Name string `json:"name"` Age int `json:"age"` } func main() { jsonString := `{"id":1,"name":"John","age":30}` var user User if err := json.Unmarshal([]byte(jsonString), &user); err != nil { log.Fatal(err) } fmt.Println(user.ID, user.Name, user.Age) }
在這個例子中,我們定義了一個結構體User,表示一個用戶對象。我們使用“json”標簽為結構體中的字段指定名稱。然后,我們將一個JSON字符串傳遞給json.Unmarshal方法,并將結果存儲在user變量中。如果解析失敗,則會打印出錯誤信息;否則,我們將通過訪問User結構體中的字段來打印出解析后的數據。
需要注意的是,如果JSON的結構與定義的結構體不匹配,或者JSON中的字段值類型與結構體中的字段類型不匹配,則會導致解析失敗。