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

golang 解析json 類型

林雅南2年前8瀏覽0評論

Go語言是一門新興的編程語言,用于編寫高性能服務器軟件和網絡應用,它的優勢在于非常適用于并發編程,而且其生態系統十分健全。在Go語言中,解析JSON類型是一個非常重要的任務,因為JSON是一種常用的數據交換格式,許多API都使用JSON來返回數據。

在Go語言中,解析JSON類型非常簡單,只需要導入"encoding/json"庫,然后使用json.Unmarshal()函數即可解析JSON數據。

import (
	"encoding/json"
	"fmt"
)
type Message struct {
	Name string
	Body string
	Time int64
}
func main() {
	b := []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)
	var m Message
	err := json.Unmarshal(b, &m)
	if err != nil {
panic(err)
	}
	fmt.Printf("%s: %s\n", m.Name, m.Body)
}

上面的代碼定義了一個名為Message的結構體,這個結構體包含三個字段分別是Name、Body和Time。然后,使用json.Unmarshal()函數將JSON數據解析到這個結構體中。函數的第一個參數是JSON數據,第二個參數是一個指向解析后結構體的指針。最后輸出Name和Body的值。

當然,有時候JSON數據可能比較復雜,包含嵌套結構體、數組等類型。在這種情況下,我們可以使用json.Decoder類型解析JSON數據。

import (
	"encoding/json"
	"fmt"
	"strings"
)
type Message struct {
	Name string
	Body string
	Time int64
}
type Messages struct {
	Messages []Message
}
func main() {
	r := strings.NewReader(`
	{
"Messages": [
{"Name":"Alice","Body":"Hello","Time":1294706395881547000},
{"Name":"Bob","Body":"World","Time":1294706395881547001}
]
	}`)
var ms Messages
	err := json.NewDecoder(r).Decode(&ms)
	if err != nil {
panic(err)
	}
fmt.Printf("%s: %s\n", ms.Messages[0].Name, ms.Messages[0].Body)
}

上面的代碼定義了兩個結構體,分別是Message和Messages。Messages結構體包含一個Message類型的數組。然后將JSON數據讀入一個字符串reader中,在使用json.NewDecoder()函數創建json.Decoder類型。最后使用Decode()方法將JSON數據解析到Messages結構體中。

總的來說,Go語言內置支持JSON類型的解析和序列化,非常適合用于網絡編程中。如果你還沒有掌握它,趕快去試試吧!