JMESPath

These examples use jp.

Period in Key

{
    "apiVersion": "v1",
    "data": {
        "tls.crt": "Zm9vCg==",
        "tls.key": "YmFyCg=="
    },
    "kind": "Secret",
    "type": "kubernetes.io/tls"
}

Quote it. Sometimes you can escape the period with a \ backslash.

echo $KubeSecret | jp 'data."tls.crt"'
#+RESULTS:
"Zm9vCg=="

Filters

startswith

{
    "Exports": [
        {
            "ExportingStackId": "arn1",
            "Name": "foo-cats",
            "Value": "foo1"
        },
        {
            "ExportingStackId": "arn2",
            "Name": "foo-dogs",
            "Value": "foo2"
        },
        {
            "ExportingStackId": "arn3",
            "Name": "bar-cats",
            "Value": "bar1"
        }
    ]
}
echo $Exports | jp "Exports[?starts_with(Name, 'foo')].Name"
#+RESULTS:
[
  "foo-cats",
  "foo-dogs"
]