using Newtonsoft.Json.Linq;
public static void Main()
""a"": [ ""do"", ""re"", ""mi"" ],
""b"": { ""fizz"": ""boom"", ""bang"": true },
""c"": { ""foo"": 10, ""bar"": 20 }
{ ""foo"": 1, ""bar"": 2 },
{ ""foo"": 3, ""bar"": 4 }
{ ""sis"": ""dit"", ""boom"": ""dash"", ""bah"": ""dat"" },
{ ""bing"": ""doo"", ""bang"": ""dah"", ""boom"": ""dee"" }
""fee"": { ""foo"": ""bar"" },
""fie"": { ""baz"": ""quux"" }
""two"": { ""bang"": 50, ""pow"": 60 }
string[] keysToFind = new string[] { "foo", "bang" };
JToken token = JToken.Parse(json);
foreach (var key in keysToFind)
var paths = token.SelectTokens("$.." + key)
Console.WriteLine("\"" + key + "\" was found at:\r\n " + string.Join("\r\n ", paths));