Go で JSON を扱うユーティリティを作ってみた #golang

概要

Go で JSON を扱うときは構造体を用意して扱うのが一般的と思われる。

ただ外部の API 経由で取得する JSON なんかだと、フィールドが大量だったり、階層が深かったりして扱うのが大変だったりする。

一部の値だけ使いたいときにもっと手軽に扱えないかなー、と思ってユーティリティを作ってみた。

github.com

使い方

README とか Example も書いたんだけどこんな感じ。

jsonVal := `
  {
      "team": "FC Barcelona",
      "captain": {
          "name":"Messi", 
          "position":"Forward"
      }
  }
  `
// JSON 文字列からコンテナを生成
container, err := chazuke.FromJSON(jsonVal)
if err != nil {
    panic(err.Error())
}

// Get で ほしい情報にアクセスして Value で取り出す
team, err := container.Get("team").Value()
if err != nil {
    panic(err.Error())
}
fmt.Println(team) // -> FC Barcelona

// 階層化してる場合はこんな感じ
captain, err := container.Get("captain").Get("name").Value()
if err != nil {
    panic(err.Error())
}
fmt.Println(captain) // -> Messi

他にも配列を扱えるようにしたりしてる。

補足

まぁすでに何かしらありそうだなとは思っていたけれど、だいぶ似たようなのがあったw

勉強になったし、作りたいから作ったということで。。

github.com