title: Is Go able to unmarshal to map[string][]interface{}?
body: <p>Currently, I try to parse JSON to map[string][]interface{}, but unmarshalling returns an error. According to (<a href="https://golang.org/pkg/encoding/json/" rel="nofollow noreferrer">https://golang.org/pkg/encoding/json/</a>), to unmarshal JSON into an interface value, Unmarshal stores one of these in the interface value:</p>
  
  <ul>
  <li>bool, for JSON booleans</li>
  <li>float64, for JSON numbers</li>
  <li>string, for JSON strings
  -[]interface{}, for JSON arrays</li>
  <li>map[string]interface{}, for JSON objects</li>
  <li>nil for JSON null</li>
  </ul>
  
  <p>I wonder if golang is able to unmarshal map[string][]interface{}. The following is code snippet. I am new to Golang, thanks for help in advance.</p>
  
  <pre><code>// emailsStr looks like "{"isSchemaConforming":true,"schemaVersion":0,"unknown.0":[{"email_address":"test1@uber.com"},{"email_address":"test2@uber.com"}]}"
  
  emailsRaw := make(map[string][]*entities.Email)
  err := json.Unmarshal([]byte(emailsStr), &amp;emailsRaw)
  </code></pre>
  
  <p>Error message: </p>
  
  <blockquote>
    <p>&amp;json.UnmarshalTypeError{Value:"number", Type:(*reflect.rtype)(0x151c7a0), Offset:44, Struct:"", Field:""}</p>
  </blockquote>