Jq не обрабатывает файл JSON в Cygwin

Когда я пытаюсь использовать jq в cygwin для обработки файла json, я всегда получаю сообщение

assertion "cb == jq_util_input_next_input_cb" failed: file "/usr/src/ports/jq/jq-1.6-1.x86_64/src/jq-1.6/src/util.c", line 371, function: jq_util_input_get_position

Я видел несколько других сообщений об этом, но, похоже, я не нашел решения. Есть ли способ заставить его работать?

Я использую jq 1.6 в cygwin.

Обновлять:

Это мой файл JSON:

{
  "users": [
    {
      "userId": 1,
      "firstName": "firstName_1",
      "lastName": "lastName_1",
      "phoneNumber": "111111111",
      "emailAddress": "[email protected]"
    },
    {
      "userId": 2,
      "firstName": "firstName_2",
      "lastName": "lastName_2",
      "phoneNumber": "222222222",
      "emailAddress": "[email protected]"
    },
    {
      "userId": 3,
      "firstName": "firstName_3",
      "lastName": "lastName_3",
      "phoneNumber": "333333333",
      "emailAddress": "[email protected]"
    },
    {
      "userId": 4,
      "firstName": "firstName_4",
      "lastName": "lastName_4",
      "phoneNumber": "444444444",
      "emailAddress": "[email protected]"
    },
    {
      "userId": 5,
      "firstName": "firstName_5",
      "lastName": "lastName_5",
      "phoneNumber": "555555555",
      "emailAddress": "[email protected]"
    }
  ]
}

Если я использую это:

echo "$(<file_1.json)" | jq -r '["ID","NAME"], ["--","------"], (.users[] | .userId, .lastName)'

Я получаю это:

[
  "ID",
  "NAME"
]
[
  "--",
  "------"
]
1
lastName_1
2
lastName_2
3
lastName_3
4
lastName_4
5
lastName_5

Если я попробую это:

echo "$(<file_1.json)" | jq -r '["ID","NAME"], ["--","------"], (.users[] | .userId, .lastName) | @tsv'

Я получаю это:

ID      NAME
--      ------
assertion "cb == jq_util_input_next_input_cb" failed: file "/usr/src/ports/jq/jq-1.6-1.x86_64/src/jq-1.6/src/util.c", line 371, function: jq_util_input_get_position
                    Aborted (core dumped)

Я исходил из этой ссылки: Как отформатировать строку JSON в виде таблицы с помощью jq?

немного больше деталей, таких как командная строка, примеры данных?

matzeri 29.03.2022 15:10
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
1
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не хватало скобок массива вокруг .userId, .lastName (которые также присутствуют в решении, на которое вы ссылаетесь).

["ID","NAME"], ["--","------"], (.users[] | [.userId, .lastName]) | @tsv
ID  NAME
--  ------
1   lastName_1
2   lastName_2
3   lastName_3
4   lastName_4
5   lastName_5

Демо

Другие вопросы по теме