Golangでどんな json が返ってくるかわからない時に const で定義するまでじゃないんだけど、 interface だと呼び出しが面倒なのどうしたらいいんだろう問題
package main import ( "bytes" "encoding/json" "fmt" ) func main() { b := []byte(`{"foo": "bar", "hoge": {"fuga": "hoga"}}`) dec := json.NewDecoder(bytes.NewReader(b)) var jsonData interface{} dec.Decode(&jsonData) fmt.Println(jsonData) fmt.Println(jsonData.(map[string]interface{})["hoge"].(map[string]interface{})["fuga"]) }
こんな感じのコード。 もっと入れ子になってたらと思うと… ゾッとする。
こういう時はどうするのがベストプラクティスなんだろう… こうするしかないのかな??
追記 (2014/11/10)
どんな JSON になるか分からない場合は http://t.co/0tsFa9D1Zk もしくは http://t.co/97FY2Ceouq が便利よ
— mattn (@mattn_jp) 2014, 11月 7
とのことなので、使ってみることにします!