在Go語言中,json.Marshal()函數是一個非常重要的函數,用于將數據結構序列化為JSON格式的字符串。
import "encoding/json" type User struct { Name string `json:"name"` Age int `json:"age"` } user := User{Name: "Tom", Age: 18} userJson, err := json.Marshal(user) if err != nil { // 處理錯誤 }
上述代碼中,我們定義了一個User結構體,然后將其序列化為一個JSON字符串。在結構體中,我們使用了`json`標簽指定了JSON的字段名,這在做API的時候非常有用。
當我們對一個結構體進行序列化時,Go語言會根據一定的規則將其轉換為JSON格式,常見的規則如下:
- 布爾型:true被轉換為JSON的true,false被轉換為JSON的false
- 數字型:數字被直接轉換為JSON的數值,浮點數被轉換為JSON的浮點數
- 字符串型:字符串被轉換為JSON的字符串,特殊字符會被轉義
- 數組型:數組被轉換為JSON的數組
- Map型:Map被轉換為JSON的對象,其中鍵為字符串類型
- 結構體型:結構體被轉換為JSON的對象,其中字段名為`json`標簽中指定的名稱
- 空值:nil被轉換為JSON的null
總的來說,Go語言的json.Marshal()函數非常強大且易用,可以快速地將我們的數據序列化為JSON格式的字符串,用于數據存儲和網絡傳輸。
下一篇python 掃描儀