Go語言操作json
阿新 • • 發佈:2019-02-09
下面是一段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都沒發現這種首字母大小寫問題。