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

golang json map

林子帆1年前7瀏覽0評論

在golang中,使用json進行序列化和反序列化是經常用到的操作。在處理json數據時,golang提供了map類型,可以方便地存儲和操作json數據。

Map是一種無序的key-value對的集合,key和value可以是任意類型。在golang中,Map的寫法如下:

var m map[string]interface{}

其中,string表示key的類型,interface{}表示value的類型(注意:interface{}表示可以接收任何類型)。

Map的使用方法如下:

// 初始化map
m := make(map[string]interface{})
// 添加元素
m["name"] = "John"
m["age"] = 30
m["isMarried"] = true
// 刪除元素
delete(m, "isMarried")
// 更新元素
m["age"] = 31
// 遍歷map
for k, v := range m {
fmt.Println(k, v)
}

使用Map存儲json數據時,可以通過json.Marshal()方法將map序列化為json字符串,通過json.Unmarshal()方法將json字符串反序列化為map。

示例代碼如下:

import (
"encoding/json"
"fmt"
)
// 定義一個結構體
type Person struct {
Name string
Age  int
}
func main() {
// 定義一個map
m := make(map[string]interface{})
// 添加結構體
p := Person{Name: "John", Age: 30}
m["person"] = p
// 序列化為json字符串
data, err := json.Marshal(m)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(data))
// 反序列化為map
var m2 map[string]interface{}
err = json.Unmarshal(data, &m2)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(m2)
}

通過上述示例代碼,我們可以看到,使用Map存儲json數據可以方便地操作和傳遞json數據。