title: What is the JSON View class in Jackson and how does it work?
body: <p>I don't understand what is Jackson's @JsonView(<strong>Views.MyClass.class</strong>).
  I know that I can annotate POJO's fields and methods in this way <strong>to filter non-annotated ones</strong> from being serialized with JSON. But what is the Views.Myclass class? Is it a template class for Jackson library?</p>
  
  <p>And why can there be many classes inside the Views class? For example like this:</p>
  
  <pre><code> class Views {
              static class Public { }
              static class ExtendedPublic extends PublicView { }
              static class Internal extends ExtendedPublicView { }
    }
  </code></pre>
  
  <p>Why is it needed and how does it work?</p>