muzigram

山椒は小粒でもピリリと辛い

2013/09/19

golangでjsonの文字列からstructのコードを作る #golangjp

概要

twitterからデータをゴニョゴニョするアプリを書いているんだけど、
jsonのデータをgoの構造体にするのが意外とめんどいなーと思ったので
おそらく探せばあるんだろうけど勉強がてら書いてみている。
もちっとスマートにしていこう…。

code

https://gist.github.com/mogeta/6619490
Loading ....

自分が忘れないためのメモ

jsonの展開自体は'encoding/json'を使えばさくさく。
http://golang.org/doc/effective_go.html#type_switch
に書いてあるType switchは何種類かの型で戻ってくる可能性があるinterface{}を型毎に振り分ける際に便利。
今回のコードではjsonの中のデータがboolなのか、stringなのか、みたいな処理に使用している。
map等の場合は再帰的に処理。

使用方法

./main -j '{"array":[1,2,3],"boolean":true,"number":123,"object":{"a":"b","c":"d","e":"f"},"string":"Hello World"}'
parsing...
---- result ----
type Data struct {
 array []float64
 boolean bool
 number float64
 object object
 string string
}
type object struct {
 a string
 c string
 e string
}

次にやること

  • アプリ名…
  • コードの整理
  • コマンドラインツールとしての体裁
コマンドラインツールを作ってみよう的な課題はありだな。