从固定的 JSON 结构中提取键名

时间:2021-02-16 15:20:57

标签: json jq

我有一个包含动态数据的 JSON,但不确定如何使用 JQ 检索数据。 我的 JSON 是:

{
   "RuntimeSources":{
      "env-name-DYNAMIC":{
         "the-dynamic-value-i-need-to-get":{
            "url":""
         }
      }
   },
   "DeploymentId":147,
   "Serial":158
}

'env-name-DYNAMIC' 是动态的,'the-dynamic-value-i-need-to-get' 是一样的。 json 结构始终相同。我怎样才能得到“我需要得到的动态价值”?另外我可能需要检索'env-name-DYNAMIC'

2 个答案:

答案 0 :(得分:1)

使用 keys[] 属性

.RuntimeSources | keys[] 

还有

.RuntimeSources | keys[] as $k | .[$k] | keys[]

因为你也提到了,结构没有改变,你可以选择包含3个级别的路径

paths | select( length == 3 ) | .[1]
paths | select( length == 3 ) | .[2]

答案 1 :(得分:0)

我设法得到它:

jq '.RuntimeSources | .[] | keys'

不确定这是否是最好的解决方案,但成功了。