Get path of JSON value using JSON.NET
You could also try the SelectToken
method like this:
var j = JObject.Parse(json);
var token = j.SelectToken("car.type[0].sedan.make");
Console.WriteLine(token.Path + " -> " + token.ToString());
Outputs:
car.type[0].sedan.make -> honda
Update to the latest version of Json.NET. The Path
property was added to JToken
in version 5.0 release 1 (April 7, 2013).
Here is a test program you can use to verify that it works:
class Program
{
static void Main(string[] args)
{
string json = @"
{
""car"": {
""type"": [{
""sedan"": {
""make"": ""honda"",
""model"": ""civics""
}
},
{
""coupe"": {
""make"": ""ford"",
""model"": ""escort""
}
}]
}
}";
JObject obj = JObject.Parse(json);
JToken token = obj["car"]["type"][0]["sedan"]["make"];
Console.WriteLine(token.Path + " -> " + token.ToString());
}
}
Output:
car.type[0].sedan.make -> honda