38

次のようなjson文字列があります。

j := `{"bvu62fu6dq": {
           "name": "john",
           "age": 23,
           "xyz": "weu33s"
           .....
           .....}
      }`

上記のjson文字列の値nameとから値を抽出したい。agegolang サイトhttp://play.golang.org/p/YQgzP7KPp9で与えられたこの例を見ました

しかし、私の問題は、トップレベルのjsonのキーが動的であることです。つまりbvu62fu6dq動的です。次のような構造体を作成しました。

 type Info struct {
   UniqueID map[string]string
 }

nameしかし、 とを抽出する方法がわかりませんage。私のコードはhttp://play.golang.org/p/Vbdkd3XIKcにあります

4

1 に答える 1

59

私はあなたがこのようなものが欲しいと信じています:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

type Info map[string]Person

次に、これをデコードした後、次のように動作します。

fmt.Printf("%s: %d\n", info["bvu62fu6dq"].Name, info["bvu62fu6dq"].Age)

完全な例: http://play.golang.org/p/FyH-cDp3Na

于 2013-08-23T21:54:13.763 に答える