Мне нужна помощь с использованием jq
для сортировки массива элементов, где каждый элемент содержит вложенный массив tags
элементов. Мой входной JSON выглядит так:
{
"result": [
{
"name": "ct-1",
"tags": [
{
"key": "service_name",
"value": "BaseCT"
},
{
"key": "sequence",
"value": "bb"
}
]
},
{
"name": "ct-2",
"tags": [
{
"key": "service_name",
"value": "BaseCT"
},
{
"key": "sequence",
"value": "aa"
}
]
}
]
}
Я бы хотел отсортировать, используя значение тега sequence
во вложенном массиве tags
, чтобы выходные данные выглядели так:
{
"result": [
{
"name": "ct-2",
"tags": [
{
"key": "service_name",
"value": "BaseCT"
},
{
"key": "sequence",
"value": "aa"
}
]
},
{
"name": "ct-1",
"tags": [
{
"key": "service_name",
"value": "BaseCT"
},
{
"key": "sequence",
"value": "bb"
}
]
}
]
}
Я пробовал следующую команду jq
:
$ jq '.result |= ([.[] | .tags[] | select(.key == "sequence") | .value] | sort_by(.))' input.json
, но получаю следующий результат:
{
"result": [
"aa",
"bb"
]
}
Пожалуйста, дайте мне знать, если вы знаете, как поступитьэтот сценарий.