举例来说:
type Server struct { // ID 不会导出到JSON中 ID int `json:"-"` // ServerName 的值会进行二次JSON编码 ServerName string `json:"serverName"` ServerName2 string `json:"serverName2,string"` // 如果 ServerIP 为空,则不输出到JSON串中 ServerIP string `json:"serverIP,omitempty"` } s := Server { ID: 3, ServerName: `Go "1.0" `, ServerName2: `Go "1.0" `, ServerIP: ``, } b, _ := json.Marshal(s) os.Stdout.Write(b)会输出以下内容:
{"serverName":"Go \"1.0\" ","serverName2":"\"Go \\\"1.0\\\" \""}Marshal函数只有在转换成功的时候才会返回数据,在转换的过程中我们需要注意几点:
本小节,我们介绍了如何使用Go语言的json标准包来编解码JSON数据,同时也简要介绍了如何使用第三方包go-simplejson来在一些情况下简化操作,学会并熟练运用它们将对我们接下来的Web开发相当重要。