问题
I have a json similar to the following:
{
"_source" : {
"index-pattern" : {
"fields" : ""
}
}
}
I'm trying to modify fields, but chaining the . identity operator, such as 'jq ._source.["index-pattern"].fields
' produces the following error:
'._source.["index-pattern"]
^
1 compile error'
Any ideas?
thanks
回答1:
You could write:
._source | .["index-pattern"].fields
Explanation: if "x" and "y" are alphanumeric strings that begin with an alphabetic character (where "alphabetic" includes "_") then .x | .y
can be abbreviated to .x.y
.
There are several other circumstances when E | F
can be abbreviated, e.g. E | .[]
can often be abbreviated to E[]
. The general rule is:
If an abbreviated form does not work, don't use it.
来源:https://stackoverflow.com/questions/48450533/jq-special-characters-in-nested-keys