0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

goの構造体のJSONのtagでめちゃくちゃ時間を溶かした

Posted at

goの構造体のJSONのtagでめちゃくちゃ時間を溶かした

題目の通りです。2時間くらい溶かしました。

なにでそんなに溶かしたのか

jsonのTagでそんなに溶かすことないだろ、と。溶かした原因はこれです

example.go
type JsonValue struct {
  foo string `json:"foo"`
  bar string `json:"bar, omitempty"`
}

お分かり頂けただろうか?この心霊現象。。
わからない人は僕と一緒に2時間溶かすかも知れない恐ろしいものです。。

bar string `json:"bar, omitempty"`

スペースですね。カンマの後ろのスペースです。時間を溶かしたのはこれエラー吐かないからです。
stringなら空文字が入っていたときに json.Marshal すると bar は省略されるはずなのに空文字が入っちゃっておかしいなぁ〜ってなります。
このスペースは入れてはいけません。正しくはこう

bar string `json:"bar,omitempry"`

こんな簡単なミスにハマる人がいるかは分かりませんが、もしいたら助けになればと思います。
僕はもう一生忘れません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?