I created small recursive C# app to parse unknown JSON string to find particular Key/Value pair's using Newtonsoft.Json.dll. 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 <1 sec. Is that JsonConvert.DeserializeObject() takes that long ?!
    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<List<Object>>(json);
                foreach (var jLine in jArr) GetJsonValue(jLine.ToString());
            }
            else
            {
                // JSON string KEY:VALUE
                var jLog = JsonConvert.DeserializeObject<Dictionary<String, Object>>(json);               
                foreach (KeyValuePair<string, object> jEntry in jLog)
                {
                    if (jEntry.Key.ToString() == findStr) Console.WriteLine("MATCH:" +  jEntry.ToString());
                    GetJsonValue(jEntry.Value.ToString());
                }                       
            }
        }
        catch { }
    }
 
    