从jenkins JSON API获取字段值

从jenkins JSON API获取字段值,json,key,jq,Json,Key,Jq,我有一个jenkins JSON API,它给我一个存储在变量data {"credentials":{"xxxxxxxxxxxxxx111":{},"xxxxxxxxxxxx2222":{}},"description":"All credentials that are not bound to a specific domain.","displayName":"Global credentials","fullDisplayName":"Credentials » Global cred

我有一个jenkins JSON API,它给我一个存储在变量
data

{"credentials":{"xxxxxxxxxxxxxx111":{},"xxxxxxxxxxxx2222":{}},"description":"All credentials that are not bound to a specific domain.","displayName":"Global credentials","fullDisplayName":"Credentials » Global credentials","fullName":"credential-store/_","global":true,"urlName":"_"}
我只需要凭证字段xxxxxxxxxxxx 111和xxxxxxxxxxxx 2222的值

到目前为止,我尝试过的事情是

echo $data | grep "credentials"
echo $data | jq -e '.credentials[]|{}' -c
这是行不通的
有人能推荐一些有效的方法吗。

你可以使用这个
jq
过滤器:

jq -r '.credentials|to_entries|.[]|.key' file

函数
to_entries
允许获取键和值,然后可以使用
关键字对其进行过滤。

在您的示例中,
凭证
对象中的元素是空对象。你所看到的价值观是什么?请使用预期的输出更新您的问题。我在这里查找值xxxxxxxxxxxx 111和xxxxxxxxxxxx 2222,它们是第一组花括号{“xxxxxxxx 111”:{},“xxxxxxxx 222”:{}内的值