在使用Go語言時,返回JSON數據時可能會遇到中文字符處理的問題。在未進行任何處理時,返回的中文字符可能會出現亂碼情況。下面是一種處理中文字符的方法:
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { user := User{Name: "張三", Age: 20} b, err := json.Marshal(user) if err != nil { fmt.Println("json error:", err) } else { fmt.Println(string(b)) } }
這里的關鍵是使用了Go語言的json包的json.Marshal()方法,將結構體User轉化為JSON字符串,并通過fmt.Println()打印在控制臺上。
當轉化的JSON字符串中包含中文字符時,該字符串可能會出現亂碼。為了解決這個問題,我們需要使用encoding/json包中提供的json.Marshal()方法的另一個參數:json.MarshalIndent()方法。
這里的關鍵是使用了Go語言的json包的json.MarshalIndent()方法,將結構體User轉化為JSON字符串,并通過fmt.Println()打印在控制臺上。
package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` } func main() { user := User{Name: "張三", Age: 20} b, err := json.MarshalIndent(user, "", " ") if err != nil { fmt.Println("json error:", err) } else { fmt.Println(string(b)) } }
通過使用json.MarshalIndent()方法的第二個參數,我們可以定義JSON字符串的縮進字符串,從而使輸出結果更易讀。在這個例子中,我們設置了JSON字符串的縮進字符串為4個空格(" "),并打印在控制臺上。
上一篇gprs json