欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

golang json 解碼

錢琪琛2年前8瀏覽0評論

golang是一門十分流行的編程語言,兼具高并發和高性能的特點。在golang中處理json是非常常見的操作,尤其是在網絡編程中。所謂json解碼,就是將json格式的數據轉換成golang中的數據結構。

示例代碼:
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
jsonStr := `{"name": "小明", "age": 20}`
var u User
if err := json.Unmarshal([]byte(jsonStr), &u); err != nil {
panic(err)
}
fmt.Println(u.Name, u.Age)
}

在上面的例子中,我們首先定義了一個User結構體,并為其指定了json標簽。在main函數中,首先定義了一個json字符串,然后將其解析成User結構體并打印出其Name和Age屬性。在這里,需要注意的是,在解析json字符串時,我們需要使用json.Unmarshal函數,并將其結果傳遞給一個User類型的變量。

不僅如此,golang還提供了一些其他的json解碼方式,如解析到map、slice等數據結構。例如下面這個例子:

示例代碼:
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonStr := `[{"name": "小明", "age": 20}, {"name": "小紅", "age": 18}]`
var users []map[string]interface{}
if err := json.Unmarshal([]byte(jsonStr), &users); err != nil {
panic(err)
}
for _, user := range users {
fmt.Println(user["name"], user["age"])
}
}

在上面這個例子中,我們定義了一個json字符串,其中包含了兩個User對象。我們可以將其解析成一個由map[string]interface{}組成的slice,并使用循環打印出每個User對象的Name和Age屬性。

通過以上兩個例子的演示,我們可以看出,在golang中進行json解碼是非常方便的,只需要使用少量的代碼就可以完成大部分常見的解碼操作。