title: unmarshal ignore empty fields
body: <p>I get a JSON from a client on the successful submit of user details.</p>
  
  <p>Some element in the JSON can be skipped since they were not updated.</p>
  
  <p>On the Go server side, I have an equivalent struct defined.</p>
  
  <p>The server successfully marshals the JSON bytes into the struct.</p>
  
  <pre><code>type user struct {
      Id       *int64  `json:",omitempty"`
      Name     *string `json:",omitempty"`
      Age      *int64  `json:",omitempty"`
  }
  </code></pre>
  
  <p>But for fields which are not recieved from client, unmarshal by default hard-codes nil for string and empty array for string array.</p>
  
  <p>For example, if I get the json <code>{ "Id" : 64, "Name" : "Ryan" }</code>, <br/>
  I don't want unmarshal to convert it to <code>{"Id" : some hexadecimal, "Name" : some hexadecimal, "Age" : nil}</code>. <br/>
  To make it simple, I would expect it to be <code>{"Id" : some hexadecimal, "Name" : some hexadecimal }</code></p>
  
  <p>How can I totally ignore the field and map what I get?</p>
  
  <p>Goplayground Code : <a href="http://play.golang.org/p/3dZq0nf68R" rel="noreferrer">http://play.golang.org/p/3dZq0nf68R</a></p>