@Konboi memo

主に技術に関してつらつらと。

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)

とのことなので、使ってみることにします!