The most robust alternative is to use the basic form:
.[KEY]
where KEY is a JSON string, including the outer quotation marks.
This form, however, must be pipelined, so you'd have to write:
jq '.abc|.["@def-ghi"]'
(The .[_]
form can also be used for arrays, but of course _ would have to be an integer.)