gpt4 book ai didi

json - 如何创建 JSON 叶子的路径?

转载 作者:行者123 更新时间:2023-12-01 05:13:41 27 4
gpt4 key购买 nike

假设我们有以下 JSON:

[
{
"dir-1": [
"file-1.1",
"file-1.2"
]
},
"dir-1",
{
"dir-2": [
"file-2.1"
]
}
]

我们想要得到下一个输出:

  "dir-1/file-1.1"
"dir-1/file-1.2"
"dir-1"
"dir-2/file-2.1"

即获取所有叶子的路径,使用 / 连接项目。有没有办法在 JQ 上做到这一点?

我试过这样的:

cat source-file | jq 'path(..) | [ .[] | tostring ] | join("/")'

但它甚至无法产生我需要的东西。

最佳答案

您可以通过将路径与其值合并来利用流的工作方式。 Streams 只会为叶值发出 path, value 对。只需忽略编号索引即可。

$ jq --stream '
select(length == 2) | [(.[0][] | select(strings)), .[1]] | join("/")
' source-file

返回:

"dir-1/file-1.1"
"dir-1/file-1.2"
"dir-1"
"dir-2/file-2.1"

关于json - 如何创建 JSON 叶子的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47004904/

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