下面是一段Go語言生成JSON的例子:
package main
import (
"fmt"
"encoding/json"
)
type Person struct {
name string
age int
sex int
}
func main() {
p := Person{name:"zhang", age:20, sex:1}
j, _ = json.Marshal(p)
fmt.Println(string(j))
}
執行以上代碼獲得結果:
{}
發現輸出一個空的json串,一開始以為自己寫的程式有問題,後來才發現是結構體字段名稱大小寫的原因造成的。将Person的字段首字母都改成大寫:
....
type Person struct {
Name string
Age int
Sex int
}
...
p := Person{Name:"zhang", age:20, sex:1}
.....
執行以後獲得正确json字元串:
{"Name":"zhang","Age":20,"Sex":1}
但是,如果我就是要首字母小寫怎麼辦呢?我想要這樣的json串:
{"name":"zhang","age":20,"sex":1}
解決辦法是修改結構體定義,如下:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Sex int `json:"sex"`
}
重新執行以後就獲得想要的json的字元串了。Go語言這點很奇怪,之前用别的語言生成JSON都沒發現這種首字母大小寫問題。