前一段时间用go写了一个查看perforce的history的小程序,go没有什么成熟的ui包,所以我选用web界面,程序本身做两件事情,一个后台更新perforce的history到本地的sqlite数据库,另外一个后台当作web服务器,处理client的request,生成json数据。
在写这个程序的时候,发现要生成json数据的结构里field名字首字母要大写。因为是一个自己用的小程序,也没有去深究到底可不可以生成首字母是小写的json数据。今天逛stackoverflow的时候看到有人问这个问题,看了看,原来go的json包有解决办法,只是自己看文档的时候没有怎么注意罢了。要加tag来做这件事情。
下面这段示例代码就的output:
{"field_a":1234,"field_b":"hello"}
package main import "fmt" import "encoding/json" func main() { type Test struct { A int `json:"field_a"` B string `json:"field_b"` } A := Test{1234, "hello"} b, _ := json.Marshal(A) fmt.Println(string(b)) }