title: One struct with multiple json representations
body: <p>The problem I'm trying to solve is that I have a model of a community that looks like this</p>
  
  <pre><code>type Community struct {
      Name string
      Description string
      Sources []Source
      Popularity int
      FavoriteCount int
      Moderators []string
      Children []Community
      Tracks []Track
  }
  </code></pre>
  
  <p>Communities hold a lot of information and there are scenarios when I want to return only part of the description such as if I'm returning a list of trending communities. In this case I'd want to return only  </p>
  
  <pre><code>type Community struct {
      Name string
      Description string
      Popularity int
      FavoriteCount int
  }
  </code></pre>
  
  <p>The only way I can think of doing this is to create a new type containing only those fields and write a convenience method that takes a community and returns that type, but essentially creating a new object and copying those fields by value, is there a better way to do this? </p>
  
  <p>I'm aware of the <code>json:"-"</code> syntax, but I'm not sure of how you could do this on a case by case basis as I still need to sometimes return the full object, perhaps a different type that is converted to?</p>