gpt4 book ai didi

json - 使用 JQ 的多个过滤器

转载 作者:行者123 更新时间:2023-12-04 18:40:53 25 4
gpt4 key购买 nike

我的老板希望我们的团队使用 JQ 来解析 JSON 文件。我使用的应用程序生成我需要转换的 JSON。我有一个看起来像这样的文件:

{
"Collections": [
{
"OptionGroups": [
{
"OptionGroupName": "Test1",
"Status": "in-sync"
}
],
"Version": "3.4.25",
"InstanceIdentifier": "Dev1"
},
{
"OptionGroups": [
{
"OptionGroupName": "Test2",
"Status": "in-sync"
}
],
"Version": "3.4.22",
"InstanceIdentifier": "Dev2"
}
]
}

使用 JQ,当我执行此操作时:
cat json.txt | jq -r '.Collections[].OptionGroups[].OptionGroupName, .Collections[].InstanceIdentifier, .Collections[].Version'

我得到这个输出:
Test1
Test2
Dev1
Dev2
3.4.25
3.4.22

我如何获得看起来像这样的输出:
Test1    Dev1    3.4.25
Test2 Dev2 3.4.22

最佳答案

使用使用多个 [] 的过滤器时,请务必谨慎行事。在一个表达式中。如果你不小心,你可能会得到意想不到的结果。

我会将其视为转换为 CSV(但使用不同的分隔符,一个制表符)。

首先将数据转换为您的行。

.Collections[] | { InstanceIdentifier, Version } + (.OptionGroups[] | { OptionGroupName })

使用这些新对象,您可以构建行值数组并写出行。而不是将数组传递给 @csv过滤器,只需用标签加入它们。
[ .OptionGroupName, .InstanceIdentifier, .Version ] | join("\t")

关于json - 使用 JQ 的多个过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30768196/

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