go語言是一種強類型靜態語言,通常應用于網絡編程、云計算等領域。在進行開發過程中,獲取json數組是一個很常見的操作。本文將介紹如何使用go語言的內置包獲取json數組。
首先,需要引入go語言的內置包“encoding/json”,該包提供了一些函數和結構體,用于對JSON數據進行編解碼。
// 引入encoding/json內置包 import "encoding/json"
可以通過Unmarshal函數將json字符串轉換為go語言的數據結構。具體來說,該函數需要兩個參數:json字符串和將json解碼后的數據結構的引用。
// 定義json字符串和解碼后的數據結構 var jsonStr = `{ "users": [ { "name": "Tom", "age": 18 }, { "name": "Jerry", "age": 20 } ] }` type user struct { Name string `json:"name"` Age int `json:"age"` } type users struct { Users []user `json:"users"` } // 使用Unmarshal函數解析json數組 var data users err := json.Unmarshal([]byte(jsonStr), &data) fmt.Println(data.Users[0].Name) // Tom fmt.Println(data.Users[1].Age) // 20
上面的代碼定義了一個json字符串和一個解碼后的數據結構。通過調用Unmarshal函數,將json解析為數據結構之后即可使用。
如果需要將go語言中的數據結構轉換為json字符串,則可以使用json.Marshal函數。該函數需要一個參數:go語言的數據結構,返回一個json字符串和一個錯誤。
// 定義切片,用于存放user數據 var userList []user userList = append(userList, user{Name: "Tom", Age: 18}) userList = append(userList, user{Name: "Jerry", Age: 20}) // 使用Marshal函數將數據轉換為json字符串 jsonBytes, err := json.Marshal(userList) if err != nil { fmt.Println("json marshal error:", err) return } fmt.Println(string(jsonBytes)) // [{"name":"Tom","age":18},{"name":"Jerry","age":20}]
通過上述代碼,便可以通過內置包“encoding/json”很輕松地獲取和轉換json數組了。