Свернуть объект JSON с помощью jq - PullRequest
0 голосов
/ 09 января 2019

У меня проблемы с завершением последней части этой головоломки. Я хочу сгладить JSON, который содержит массив с JQ. Текущий прогресс: https://jqplay.org/s/fwjTN1CnFc

Введите:

{
    "a": "1",
    "list": 
    [
        {
            "Key": "b",
            "Value": "2"
        },
        {
            "Key": "c",
            "Value": "3"
        },
        {
            "Key": "d",
            "Value": "4"
        }
    ]
}

Ожидаемый результат:

{
  "a": "1",
  "b": "2",
  "c": "3",
  "d": "4"
}

Вот ссылка на мой текущий прогресс. https://jqplay.org/s/fwjTN1CnFc

Я сейчас использую этот запрос {a: .a}, (.list | map({(.Key): .Value}) | add)

А вот мои неверные на данный момент результаты, которые я не совсем понимаю:

{
  "a": "1"
}
{
  "b": "2",
  "c": "3",
  "d": "4"
}

Любая помощь будет потрясающей!

1 Ответ

0 голосов
/ 09 января 2019

Как это бывает, ваш .list точно подходит для jq's from_entries, поэтому вы можете просто написать:

{a} + (.list|from_entries)

Однако ваш подход легко можно заставить работать:

{a} +  (.list | map({(.Key): .Value}) | add)
...