I'd like to select all elements with a certain match in the name of the property.
For example, all the properties whose name starts with 'pass' from this json:
{
"firstName": "John",
"lastName" : "doe",
"age" : 50,
"password" : "1234",
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888",
"password": "abcd"
},
{
"type" : "home",
"number": "0123-4567-8910",
"password": "fghi"
}
]
}
Would result something like this:
[
"1234",
"abcd",
"fghi"
]
I don't want filter by values, only by property names. Is it possible using jsonpath?
I'm using the method SelectTokens(string path) of Newtonsoft.Json.Linq
root.SelectTokens("..pass*")doesn't work, see dotnetfiddle.net/3vJl8y. Closest I can find is the array slice operatorroot.SelectTokens("..['password','pass']"), see dotnetfiddle.net/QozjnQ. Otherwise you could useDescendantsAndSelf()as shown here or here.