title: Golang - Override JSON tag of embedded field
body: <p>Let's say I have the following types:</p>
  
  <pre><code>type Inner struct {
      Field1 string `json:"field1"`
      Field2 string `json:"field2"`
  }
  
  type Outer struct {
      Inner 
      Field2 string `json:"-"`
  }
  </code></pre>
  
  <p>What I am trying to accomplish with this is to allow having a type (<code>Outer</code>) that includes all of the fields in an embedded type (<code>Inner</code>), but overrides one of the fields to not be marshalled in JSON. This does not work, and calling <code>json.Marshal(Outer{})</code> returns:</p>
  
  <pre><code>{"field1":"","field2":""}
  </code></pre>
  
  <p>Is there any way to do this in Go that will instead return this?</p>
  
  <pre><code>{"field1":""}
  </code></pre>