けーたうぇぶ

ITエンジニアの技術ネタや日々の生活のことを書き連ねます。

GolangでJSONを出力してみる

隙間時間にGolangを触り始めて、APIのレスポンスデータのJSONを利用しようとしたところ、(たかが)JSONの出力がなかなかうまくいきませんでした。。
サービスのドキュメントを読めばJSONのキーがわかるのですが、それでもJSONをそのまま出力&中身を確認しながら開発を進めたいので、今回はJSONの出力でうまくいった方法を残しておきます。

まずはソースコード(抜粋)

import (
    "fmt"
    "encoding/json"
)

// この構造体をabcで使用する
type abcStruct struct {
    A string // 先頭は大文字にしておく
    B string
}

// 変数abcを用意
abc := abcStruct{
    A: "aa",
    B: "bb"}

fmt.Printf("%v\n", abc)
// 出力結果: {aa bb}

fmt.Printf("%+v\n", abc)
// 出力結果: {A:aa B:bb}

fmt.Printf("%#v\n", abc)
// 出力結果: abcStruct{A:"aa", B:"bb"}

abcJSON, _ := json.Marshal(abc)
fmt.Println(string(abcJSON))
// 出力結果: {"A":"aa","B":"bb"}

JSONを出力して、キーバリューそれぞれを確認したかったので、4つ目にプリントした json.Marshal を使うのが使い勝手良さそうでした。
fmt パッケージは出力設定をいろいろ変更できるようで、理解が追いついてきたら便利だなと感じました。

新しいプログラミング言語を習得するのは、他の言語を触っていたとしても多少時間がかかるものですね。
Goは仕事で使っているわけでもないので、ぼちぼち使えるようになりたいと思います。