gpt4 book ai didi

json - jq 使用嵌套数组元素的值排序

转载 作者:行者123 更新时间:2023-12-04 14:17:40 24 4
gpt4 key购买 nike

我在使用 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"
]
}

如果您知道如何处理这种情况,请告诉我。

最佳答案

from_entries将键值对数组转换为对象,您可以将其与 sort_by 一起使用像这样:

.result |= sort_by(.tags | from_entries | .sequence)

关于json - jq 使用嵌套数组元素的值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58665496/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com