色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json unmarshal

方一強2年前9瀏覽0評論

golang提供了方便的json解析庫,可以把json數據轉化成golang的結構體類型。golang的json解析庫使用reflect機制,處理速度較快。

在golang中,json解析主要使用兩個函數Unmarshal和Marshal。Unmarshal函數將json數據解析成golang的結構體類型,Marshal函數把一個結構體類型轉成json數據。

下面是一個簡單的golang json解析示例:

import "encoding/json"
import "fmt"
import "log"
type Person struct {
Name string
Age int
}
func main() {
data := `{"Name": "Tom", "Age": 20}`
var p Person
err := json.Unmarshal([]byte(data), &p)
if err != nil {
log.Fatal(err)
}
fmt.Println(p.Name, p.Age)
}

使用json.Unmarshal函數把json數據解析成Person結構體類型。注意,解析json數據時,需要把json數據轉化為byte數組類型。

如果json數據中的屬性名和結構體中的屬性名不一致,可以使用tag標識來解析屬性名。如:

type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
data := `{"name": "Tom", "age": 20}`
var p Person
err := json.Unmarshal([]byte(data), &p)
if err != nil {
log.Fatal(err)
}
fmt.Println(p.Name, p.Age)

Person結構體使用了tag標識,指定屬性名對應的json數據中的鍵名。這樣,在解析數據時,就可以正確解析出Person結構體的屬性。

需要注意的是,在使用Unmarshal解析json數據時,目標類型必須是可導出類型(即首字母大寫),否則無法正確解析。