Как сгладить значения массива JSON как CSV, используя JQ - PullRequest
0 голосов
/ 02 октября 2019

У меня есть JSON-файл, содержащий клиенты приложений и связанные с ними функции приложения:

{
    "client-A": [
        "feature-x"
    ],
    "client-B": [
        "feature-x",
        "feature-y"
    ],
    "client-C": [
        "feature-z"
    ],
    "client-D": [
        "feature-x",
        "feature-z"
    ],
    ...
}

Я пытаюсь превратить это в следующий CSV:

client,feature
client-A,feature-x
client-B,feature-x
client-B,feature-y
client-C,feature-z
client-D,feature-x
client-D,feature-z

Что легкоспособ использовать jq, чтобы сделать это?

1 Ответ

0 голосов
/ 02 октября 2019

Не уверен, является ли это наиболее эффективным способом сделать это, но вы можете преобразовать, используя следующий конвейер:

<yourfile.json jq -r 'to_entries | .[] | { key: .key, value: .value[] } | [ .key, .value ] | @csv'

to_entries преобразует структуру в пары "ключ-значение", которые затем могутоперироваться. Бит { key: .key, value: .value[] } преобразует массив в несколько строк ...

...