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

У меня есть однострочный json-файл, похожий на этот

{"fieldA":1, "fieldB":"foo"}
{"fieldA":2, "fieldB":"bar"}
{"fieldA":4, "fieldB":"foobar"}
...

Как я могу правильно прочитать этот файл, используя jq?

Я пытался сделать:

cat myFile.json | jq [.]

но это возвращает что-то вроде:

[{
  "fieldA":1, 
  "fieldB":"foo"
}]
[{
  "fieldA":2, 
  "fieldB":"bar"
}]
[{
  "fieldA":4, 
  "fieldB":"foobar"
}]
...

но я хотел бы получить это вместо этого:

[{
  "fieldA":1, 
  "fieldB":"foo"
},
{
  "fieldA":2, 
  "fieldB":"bar"
},
{
  "fieldA":4, 
  "fieldB":"foobar"
},
...]

Заранее спасибо!

Вы можете проглотить входной файл с помощью -s: jqplay.org/s/uFL1SucU6v

Benjamin W. 09.04.2019 21:53

Хотя я почти уверен, что это дубликат.

Benjamin W. 09.04.2019 21:53

Несмотря на вопрос об «объекте» в заголовке, вопрос также спрашивает (и получает ответ) об объединении в массив.

Benjamin W. 09.04.2019 21:55
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
4
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы Конечно хотите этого? Какова ваша конечная цель? Вы можете объединить все входные данные в один массив, используя jq -n '[inputs]' (-n избегает обычного чтения стандартного ввода в ., позволяя отображать все это на inputs), но это означает, что он не может производить какие-либо выходные данные или делать что-либо еще. обработки, пока весь ввод не будет прочитан, что может быть или не быть тем, что вы хотите.

[он не может произвести какой-либо вывод или выполнить дальнейшую обработку, пока весь ввод не будет прочитан] это при использовании inputs или .?

JaviOverflow 05.06.2019 14:47

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