如何使用jq从JSON获取键名

curl http://testhost.test.com:8080/application/app/version | jq '.version' |

jq '.[]'

上面的命令仅输出以下值:

"madireddy@test.com"

"2323"

"test"

"02-03-2014-13:41"

"application"

我如何像下面这样获取键名:

email

versionID

context

date

versionName

回答:

您可以使用:

$ jq 'keys' file.json

$ cat file.json:

{ "Archiver-Version" : "Plexus Archiver", "Build-Id" : "", "Build-Jdk" : "1.7.0_07", "Build-Number" : "", "Build-Tag" : "", "Built-By" : "cporter", "Created-By" : "Apache Maven", "Implementation-Title" : "northstar", "Implementation-Vendor-Id" : "com.test.testPack", "Implementation-Version" : "testBox", "Manifest-Version" : "1.0", "appname" : "testApp", "build-date" : "02-03-2014-13:41", "version" : "testBox" }

$ jq 'keys' file.json

[

"Archiver-Version",

"Build-Id",

"Build-Jdk",

"Build-Number",

"Build-Tag",

"Built-By",

"Created-By",

"Implementation-Title",

"Implementation-Vendor-Id",

"Implementation-Version",

"Manifest-Version",

"appname",

"build-date",

"version"

]

要使用这些键创建一个BASH数组:

使用BASH 4+:

mapfile -t arr < <(jq -r 'keys[]' ms.json)

在较旧的BASH上,您可以执行以下操作:

arr=()

while IFS='' read -r line; do

arr+=("$line")

done < <(jq 'keys[]' ms.json)

然后打印:

printf "%s\n" ${arr[@]}

"Archiver-Version"

"Build-Id"

"Build-Jdk"

"Build-Number"

"Build-Tag"

"Built-By"

"Created-By"

"Implementation-Title"

"Implementation-Vendor-Id"

"Implementation-Version"

"Manifest-Version"

"appname"

"build-date"

"version"

以上是 如何使用jq从JSON获取键名 的全部内容, 来源链接: utcz.com/qa/413080.html

回到顶部