使用bashjq解析JSON:获取顶级字符串
现在我有一个类似以下内容的JSON文件:使用bashjq解析JSON:获取顶级字符串,json,bash,key,jq,Json,Bash,Key,Jq,现在我有一个类似以下内容的JSON文件: { "string1":[{ "spec1": "spec1value", "spec2": "spec2value" }], "string2":[{ "spec1": "spec1value", "spec2": "spec2value" }], "string3":[{ "spec1": "spec1value",
{
"string1":[{
"spec1": "spec1value",
"spec2": "spec2value"
}],
"string2":[{
"spec1": "spec1value",
"spec2": "spec2value"
}],
"string3":[{
"spec1": "spec1value",
"spec2": "spec2value"
}]
}
我需要从这个JSON中检索所有顶级值,即“string1”、“string2”和“string3”。然而,我找不到一个好办法来做这件事
如果我将文件格式化为这样,会简单得多,但我希望避免每个条目都有额外的参数:
{
"string1":[{
"stringName": "string1",
"spec1": "spec1value",
"spec2": "spec2value"
}],
"string2":[{
"stringName": "string2",
"spec1": "spec1value",
"spec2": "spec2value"
}],
"string3":[{
"stringName": "string3",
"spec1": "spec1value",
"spec2": "spec2value"
}]
}
那么我就可以做到:
jq -r ".[][][\"stringName\"]" file.json
关于如何以更干净的方式处理此问题,有什么建议吗?如果您希望它们以原始顺序作为流,请使用
键\u unsorted[]
;
如果希望首先对它们进行排序,请使用
键[]
如果希望它们以原始顺序作为流,请使用键_unsorted[]
;
如果要先对它们进行排序,请使用键[]