See the question and my original answer on StackOverflow

You could use JSON Path provided by NewtonSoft's JSON, for example:

// load & parse the json
var jo = JObject.Parse(File.ReadAllText("test.json"));

// select all 'corp' objects recursively anywhere in the doc
foreach (var tok in jo.SelectTokens("..corp")) 
{
    // extract information (note some of your corp objects don't contain anything)
    var price = tok["price"]?.Value<double>();
    var type = tok["type"]?.Value<string>();
}