title: How to exclude tree nodes of a certain "type" from JSON deserialization
body: <p>Say I have a node tree in string format that I've named <code>stringTree</code> that contains nodes of <code>type: "Category"</code> that I deem unnecessary in it like this:</p>
  
  <pre><code>{
      Id: 1,
      Type: "Product",
      Children: [
                    {
                        Id: 1.1,
                        Type: "Product",
                        Children: [
                                      {
                                          Id: 1.1.1,
                                          Type: "Category",
                                          Children: null
                                      },
                                      {
                                          Id: 1.1.2,
                                          Type: "Product",
                                          Children: null
                                      }
                                  ]
                    },
                    {
                        Id: 1.2,
                        Type: "Category",
                        Children: null
                    }
                ]
  }
  </code></pre>
  
  <p>Note that these unnecessary nodes can be at any level of the tree.</p>
  
  <p>I have this large string that contains my tree which I will deserialize using JsonConvert like so:</p>
  
  <p><code>var myTree = JsonConvert.Deserialize&lt;Tree&gt;(treeString);</code> </p>
  
  <p>Is there a way I could have the deserialization ignore any nodes (and their children) if they have a <code>type = "Category"</code>?  Basically meaning this tree would turn out with nodes 1.2, and 1.1.1 trimmed from it after deserialization.</p>