JQ объединить массив ключей с массивом значений - PullRequest
1 голос
/ 24 апреля 2020

У меня есть json фрагмент с массивом ключей и отдельным массивом значений. Ключ 1 должен соответствовать значению 1 и т. Д. c. Я пытаюсь переформатировать с jq, но мне не везет.

Оригинал JSON:

{
  "result": {
    "event.KeyValues{}.Key": [
      "name",
      "gender",
      "employee",
      "email"
    ],
    "event.KeyValues{}.Value": [
      "tyler",
      "male",
      "yes",
      "tyler@nowhere.com"
    ],
    "foo": "1",
    "bar": "2"
  }
}

Желаемый результат:

{
    "name": "tyler",
    "gender": "male",
    "employee": "yes",
    "email": "tyler@nowhere.com"
}

1 Ответ

1 голос
/ 24 апреля 2020

Используйте transpose для сопряжения ключей и значений. Затем вы можете сделать объект из каждой пары и сложить их вместе, чтобы получить желаемую структуру.

.result
| [."event.KeyValues{}.Key", ."event.KeyValues{}.Value"]
| transpose
| map({(.[0]): .[1]})
| add

Демо онлайн

...