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

golang json gob

劉柏宏2年前8瀏覽0評論

在golang中,JSON和gob(一種與平臺無關的二進制格式)都是用來序列化和反序列化數據的常用格式。然而,它們有些微妙的差異,使用場景也有所不同。

// Gob
type Person struct {
Name string
Age  int
}
func main() {
var person Person
b := bytes.Buffer{}
e := gob.NewEncoder(&b)
e.Encode(Person{Name: "John Doe", Age: 25})
d := gob.NewDecoder(&b)
d.Decode(&person)
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)
}

在上面的例子中,我們創建了一個Person結構體,然后使用gob序列化和反序列化它。我們首先將Person編碼為byte流,然后將byte流解碼為person對象。

// JSON
type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
var person Person
jsonStr := `{"name": "John Doe", "age": 25}`
json.Unmarshal([]byte(jsonStr), &person)
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)
}

上面的例子中,我們定義了與gob示例中相同的結構體,但是在這里我們使用了json包將JSON解析為person對象。我們使用Unmarshal方法將JSON解碼為person對象。

總的來說,在多個平臺上共享數據時,gob是更好的選擇,因為它們使用的是二進制流,可以更有效地傳輸數據。而JSON則更適合用于通過HTTP(特別是RESTful Web Services)傳輸數據,因為它們可以在多個平臺上輕松地解析JSON,尤其是在JavaScript和iOS應用程序中。