2017-10-18 1 views
0

구조체에 다음 JSON을 언 마샬하려고했으나 값 필드의 내용을 [[int,string]] 으로 번역 할 수 없습니다. 지금까지 :배열에 포함 된 [int] 문자열 맵을 사용하는 JSON의 언팩

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

:

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"` 
} 
관련 문제