JSON

Golang 的 JSON 使用小技巧 码农头条(2)

字号+ 作者:H5之家 来源:H5之家 2017-08-18 18:00 我要评论( )

经常 JSON 里的字段名 Go 里的字段名是不一样的。我们可以用 field tag 来修改。 output, err := jsoniter.Marshal(struct {UserNamestring `json:"user_name"`FirstLanguage string `json:"first_language"`}{User

经常 JSON 里的字段名 Go 里的字段名是不一样的。我们可以用 field tag 来修改。

output, err := jsoniter.Marshal(struct { UserName string `json:"user_name"` FirstLanguage string `json:"first_language"` }{ UserName: "taowen", FirstLanguage: "Chinese", }) should.Equal(`{"user_name":"taowen","first_language":"Chinese"}`, string(output))

但是一个个字段来设置,太麻烦了。如果使用 jsoniter,我们可以统一设置命名风格。

import "github.com/json-iterator/go/extra" extra.SetNamingStrategy(LowerCaseWithUnderscores) output, err := jsoniter.Marshal(struct { UserName string FirstLanguage string }{ UserName: "taowen", FirstLanguage: "Chinese", }) should.Nil(err) should.Equal(`{"user_name":"taowen","first_language":"Chinese"}`, string(output))

使用私有的字段

Go 的标准库只支持 public 的 field。jsoniter 额外支持了 private 的 field。需要使用SupportPrivateFields()来开启开关。

import "github.com/json-iterator/go/extra"extra.SupportPrivateFields() type TestObject struct { field1 string } obj := TestObject{} jsoniter.UnmarshalFromString(`{"field1":"Hello"}`, &obj) should.Equ

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Golang中的JSON处理技巧

    Golang中的JSON处理技巧

    2017-08-18 17:02

  • json 数据转换

    json 数据转换

    2017-08-18 15:00

  • Golang中使用JSON的一些小技巧分享

    Golang中使用JSON的一些小技巧分享

    2017-08-18 14:11

  • Golang 的 JSON 使用小技巧

    Golang 的 JSON 使用小技巧

    2017-08-18 11:00

网友点评