Json jq构造键和值对
我有如下JSON文件:Json jq构造键和值对,json,jq,Json,Jq,我有如下JSON文件: { "metadata":{ "selfLink":"/api/v1/nodes", "resourceVersion":"6666628" }, "items":[ { "metadata":{ "name":&quo
{
"metadata":{
"selfLink":"/api/v1/nodes",
"resourceVersion":"6666628"
},
"items":[
{
"metadata":{
"name":"d50d-sa-app23",
"selfLink":"/api/v1/nodes/d50d-sa-app23",
"uid":"86a0e0b7-e9da-4489-86bd-0b6a7aafe102",
"resourceVersion":"6666622",
"creationTimestamp":"2020-07-07T12:34:08Z",
"labels":{
"beta.kubernetes.io/arch":"amd64",
"beta.kubernetes.io/os":"linux",
"node-role.kubernetes.io/master":""
}
}
}
]
}
所需的输出如下请注意标签的名称和编号不是固定的。
beta.kubernetes.io/arch=amd64;beta.kubernetes.io/os=linux;node-role.kubernetes.io/master=
我知道如何分别获取键和值对。如下所示,但我不知道如何将键和值配对在一起
.items[] | ((.metadata.labels | keys | join(",")) + "=" + (.metadata.labels | join(";")))
有人能帮忙吗
谢谢这是否有助于解决您的问题:
jq -r '.items[].metadata.labels| to_entries|map("\(.key)=\(.value)") |join(";")'
// Output:
// beta.kubernetes.io/arch=amd64;beta.kubernetes.io/os=linux;node-role.kubernetes.io/master=