Как использовать переменную JQ в качестве ключа объекта? - PullRequest
0 голосов
/ 27 июня 2018

Когда я цитирую ключ, JQ не оценивает его:

$ echo value | jq -sR --arg key a '{"$key": .}'
{
  "$key": "value\n"
}

И когда я не цитирую его, JQ сообщает об ошибке синтаксиса:

$ echo value | jq -sR --arg key a '{$key: .}'
jq: error: syntax error, unexpected ':', expecting '}' (Unix shell quoting issues?) at <top-level>, line 1:
{$key: .}     
jq: 1 compile error

Каков правильный синтаксис?

1 Ответ

0 голосов
/ 27 июня 2018

Когда переменная используется для указания имени ключа, оно должно быть заключено в скобки:

{($key): .}

Фактически, когда пара ключ-значение указывается с двоеточием, ключ должен быть заключен в скобки, если только это не строковая константа JSON.

...