title: golang json unmarshal part of map[string]interface{}
body: <p>I have the following code to try to Unmarshal this json file, however the line json.Unmarshal([]byte(msg["restaurant"]), &amp;restaurant) always gives an error. How can I make Unmarshal ignore the "restaurant" or pass only the "restaurant" data to the Unmarshal function?</p>
  
  <p>Thanks!</p>
  
  <pre><code>{
    "restaurant": {
      "name": "Tickets",
      "owner": {
        "name": "Ferran"
      }
    }
  }
  
  
      file, e := ioutil.ReadFile("./rest_read.json")
      if e != nil {
              fmt.Println("file error")
              os.Exit(1)
      }
  
      var data interface{}
      json.Unmarshal(file, &amp;data)
  
      msg := data.(map[string]interface{})
      log.Println(msg)
      log.Println(msg["restaurant"])
      log.Println(reflect.TypeOf(msg["restaurant"]))
  
      var restaurant Restaurant
      json.Unmarshal([]byte(msg["restaurant"]), &amp;restaurant)
  
      log.Println("RName: ", restaurant.Name)
      log.Println("Name: ", restaurant.Owner.Name)
  </code></pre>