jsongostruct というのを書いた
Mozilla 年忘れハッカソン : ATND に行く機会があったので soh335/jsongostruct · GitHub というのを書きました。
最近 go を書いてなかったので、復習がてら与えられた json から対応する go の sutrct を吐くものを書いてみました。
ただ、print してくだけだとちょっと面白くないかなと思ったので go の標準モジュールに入っている抽象構文木(go/ast)から生成するようにしてみました。なのでインデントとかは go 側に任せてます。(一部まだ分からないところがあってインデントが上手くいかないところがあるけど)
cat /path/to/jsonfile | jsongostruct
こんな感じでこんなのを食わせると
{ "url": "http://example.com", "id": 12345, "name": "web", "bool": true, "array": [ "foo", "bar" ], "map": { "foo": "bar", "dameleon": "dame" } }
こういうのが吐かれます。
type XXX struct { Url string `json:"url"` Id float64 `json:"id"` Name string `json:"name"` Bool bool `json:"bool"` Array []string `json:"array"` Map struct { Foo string `json:"foo"` Dameleon string `json:"dameleon"` } `json:"map"` }