2018年06月16日

  • Go 语言中 json 的操作以及常见问题

    2018-06-16 17:04:16 23419 1 技术文章

    常见问题

    结构体里的字段首字母必须大写

    type Person struct{
        Name string
        Age int
    }
    
    func main(){
      person := Person{"小明",18}
      if result, err := json.Marshal(&person);err == nil {
        fmt.Println(string(result))
      }
    }
    

    控制台输出:{"Name":"小明","Age":18}

    如果字段首字母为小写的话,解析会有问题,得到的值为空。

    可以通过字段的 tag 指定 struct 转 json 后的首字母小写

    type Person struct {
        Name string `json:"name"`    
        Age int `json:"age"`
        Time int64 `json:"-"` // 忽略字段
    }
    
    func main(){
      person:=Person{"小明",18, time.Now().Unix()}
      if result,err:=json.Marshal(&person);err==nil{
         fmt.Println(string(result))
      }
    }
    

    控制台输出:{"name":"小明","age":18}