Get keys in JSON
I found that the tilda ~
symbol is able to retrieve the keys of the values it's called upon. So for your example a query like this:
$.*~
Returns this:
[ "key1", "key2", "key3"]
Another example, if we had a JSON document like this:
{ "key1": "val1", "key2": "val2", "key3": { "key31":"val31", "key32":"val32" }}
A query like this:
$.key3.*~
Would return this:
[ "key31", "key32"]
It's important to note that these examples work on JSONPath.com and some other simulators/online tools, but on some they don't. It might come from the fact that I found out about the tilda(~) operator in the JSONPath plus documentation and not the official one.