Как объединить массив в json, используя JQ - PullRequest
0 голосов
/ 24 февраля 2020

пытается объединить строки. Вот источник

{
  "movie_results": [
    {
      "genre_ids": [
        28,
        35,
        80
      ],
      "id": 96,
    }
  ]

Вот моя командная строка

C:\WINDOWS\system32>curl "https://api.themoviedb.org/3/find/tt0092644?&external_source=imdb_id" | jq -r ".movie_results[] | .id, (.genre_ids | join(\",\"))

Я получаю следующий результат

96
28,35,80

как мне сделать это 96,28,35,80? Кстати, я делаю это в windows командной строке

1 Ответ

0 голосов
/ 24 февраля 2020

Небольшая настройка вашего фильтра jq поможет:

.movie_results[] | [.id, .genre_ids[]] | join(",")

(В приведенной выше строке не учитываются правила вашей оболочки для экранирования специальных символов. Рассматривали ли вы обход таких проблем с помощью -f опция командной строки?)

Альтернатива

Вот альтернатива, которая позволяет избежать использования двойных кавычек (") в фильтре:

.movie_results[] | [.id] + .genre_ids | @csv
...