【Go】jsonを扱う
今回はJSONの扱いについて。
大体どの言語にもJSONを扱う関数があるのですが、Goにもちゃんと標準パッケージ内にあります。
まずはパッケージをインポートしておきましょう。
import ( "encoding/json" )
デコード
jsonのデコードは超簡単
json.Unmarshal([]byte, interface{})
の2つの引数を渡せばいいだけです。
第1引数にデコードしたいJSONデータ、第2引数にデコードしたデータを入れる構造体を渡します。
これだけです。あとはエラーハンドリングなどいつもの処理をいれてお好きにどうぞって感じ。
なんて簡単。超イージー。
エンコード
お気づきの方もいるかもしれませんが、エンコードはunmarshalのunを取るだけですw
json.Marshal(interface{})
これで構造体の定義のままJSON化してくれます。
keyの部分もデフォルトでは構造体の変数名でやってくれますが、これはメタ情報を追加すれば好きに変えられます。
僕は変数名と同じkeyでも毎回定義してます。そっちのほうが確実ですしね。
type User struct { Id int `json:"id"` Name string `json:"name"` Mail string `json:"mail"` }
上記のように書きます。
気をつけたいのは定義している型くらいでしょうか。IntとStringでJSONの形式もそれに合わせられる感じです。
この2つを覚えておけば普段は困ることはないと思います。
じゃんじゃん使っていきましょう。