stMind

You'll never blog alone

golangでjson.Marshalした時

構造体のフィールドにタグを指定した場合には、タグがJSONのキーとして使用される。
ただし、タグを指定するときに余分な空白を入れないようにする。

type Person struct {
    Name string `json:"N"`
    Addr string `json:"A"`
}

type Person2 struct {
    Name string `json: "N"`
    Addr string `json: "A"`
}

func main() {
    s := Person{"satojkovic", "Japan"}
    b, _ := json.Marshal(s)
    fmt.Printf("%s\n", string(b))

    s2 := Person2{"satojkovic", "Japan"}
    b2, _ := json.Marshal(s2)
    fmt.Printf("%s\n", string(b2))
}
{"N":"satojkovic","A":"Japan"}
{"Name":"satojkovic","Addr":"Japan"}