JSON DeserializeObject is very slow
<p>I created small recursive C# app to parse unknown JSON string to find particular Key/Value pair's using <code>Newtonsoft.Json.dll</code>. It works OK on small JSON strings, but takes really long time, if JSON is bigger: 3.5MB JSON file with 15K+ lines takes >3 min to parse. Parsing same file using RegExp takes &lt;1 sec. Is that <code>JsonConvert.DeserializeObject()</code> takes that long ?!</p>

<pre><code>    string json = @"{""origin-of_error"" : ""error_message"",""foo"" : ""bar""}";
    static void GetJsonValue (string json, string findStr = "foo")
    {
        try
        {

            if (Regex.Match(json, @"^\[", RegexOptions.Multiline).Success)
            {
                // JSON string Array []
                var jArr = JsonConvert.DeserializeObject&lt;List&lt;Object&gt;&gt;(json);
                foreach (var jLine in jArr) GetJsonValue(jLine.ToString());
            }
            else
            {
                // JSON string KEY:VALUE
                var jLog = JsonConvert.DeserializeObject&lt;Dictionary&lt;String, Object&gt;&gt;(json);               
                foreach (KeyValuePair&lt;string, object&gt; jEntry in jLog)
                {
                    if (jEntry.Key.ToString() == findStr) Console.WriteLine("MATCH:" +  jEntry.ToString());
                    GetJsonValue(jEntry.Value.ToString());
                }                       
            }
        }
        catch { }
    }
</code></pre>