使用数组中包含的[int]字符串映射解组JSON

时间:2017-10-18 13:22:29

标签: json go

我试图将以下JSON解组到一个结构中,但是我无法使用[[int,string]]翻译values字段的内容 这就是我到目前为止所做的:

type Response struct {
            Metric struct {
                Name string `json:"name,omitempty"`
                Appname string `json:"appname,omitempty"`
            } `json:"metric,omitempty"`
            Values []map[int]string `json:"values,omitempty"`
}

JSON文件:

{
   "metric":{
      "name":"x444",
      "appname":"cc-14-471s6"
   },
   "values":[
      [
         1508315264,
         "0.0012116165566900816"
      ],
      [
         1508315274,
         "0.0011871631158857396"
      ]
   ]
}

1 个答案:

答案 0 :(得分:1)

您展示的数据应该被解组为:

type Response struct {
            Metric struct {
                Name string `json:"name,omitempty"`
                Appname string `json:"appname,omitempty"`
            } `json:"metric,omitempty"`
            Values [][]interface{} `json:"values,omitempty"`
}

如果您想将其转移到地图工具json.Unmarshaller界面 - https://golang.org/pkg/encoding/json/#Unmarshaler

您可以拥有以下内容:

type Item struct {
    Key int
    Val string
}
func(item *Item) UnmarshalJSON([]byte) error {
    // TODO: implement 
}

type Response struct {
            Metric struct {
                Name string `json:"name,omitempty"`
                Appname string `json:"appname,omitempty"`
            } `json:"metric,omitempty"`
            Values []Item  `json:"values,omitempty"`
}