using Newtonsoft.Json.Linq;
public static void Main()
""file.txt"": ""foo.bar""
JObject root = JObject.Parse(json);
JToken file = root["dir"]["nested_dir"]["file.txt"];
Console.WriteLine(string.Join("/", file.PathAsArray()));
public static class JsonExtensions
public static string[] PathAsArray (this JToken token)
return token.AncestorsAndSelf()