Ваш ввод не json, это просто набор того, что можно рассматривать как пары ключ / значение. Предполагая, что ваш вход JSON на самом деле выглядит так:
{
"user_id": "testuser",
"auth_token": "abcd"
}
Вы можете получить массив объектов пары ключ / значение, используя to_entries
.
$ jq 'to_entries' input.json
[
{
"key": "user_id",
"value": "testuser"
},
{
"key": "auth_token",
"value": "abcd"
}
]
Если, с другой стороны, ваш ввод был на самом деле таким, вам нужно будет преобразовать его в формат, который можно обработать. К счастью, вы можете прочитать ее как необработанную строку и, возможно, проанализировать с помощью регулярных выражений или базовой обработки строк.
$ jq -Rn '[inputs|capture("\"(?<key>[^\"]+)\":\"(?<value>[^\"]*)\"")]' input.txt
$ jq -Rn '[inputs|split(":")|map(fromjson)|{key:.[0],value:.[1]}]' input.txt