在Go語言中,結構體是一種非常方便的數據類型,允許我們將多個不同的數據類型組合在一起。而在Web開發中,序列化和反序列化Json是經常涉及到的操作,Go語言的Json包提供了非常方便的Json序列化和反序列化方法。
如果我們要將Go語言中的結構體序列化成JSON格式的數據,我們只需要在該結構體中添加一個結構體標簽(struct tag)。這個結構體標簽定義了_JSON序列化_時使用的名稱,以及可能是其他的序列化信息。在Go語言中,結構體標記寫作反引號中的鍵值對。
下面是一個簡單的例子,其中定義了一個Person類型的結構體。
type Person struct { Name string `json:"name"` Age int `json:"age"` Address string `json:"address,omitempty"` }
在上面的代碼中,Name和Age字段具有tag標記json,Value Name和Age的值將在結構體實例被序列化為JSON對象時映射到JSON關鍵字“name”和“age”。,如果我們需要在Json中排除Address,則在標簽中使用 omitempty 。
現在,我們可以使用Go語言的json.Marshal() 函數將Person類型的實例轉換為Json字符串。
p := Person{Name: "Tom", Age: 23} json, _ := json.Marshal(p)
最后我們會得到一個包含Tom的名稱和23年的年齡的Json字符串。
結構體和Json序列化是Golang中的一個非常重要的話題。通過將標記添加結構體中的字段和使用 Marshal 方法,我們可以輕松地將Go結構體序列化為Json對象。
上一篇python 打印三角
下一篇python 配置持久化