现在我有一个类似于此的JSON文件:
{
"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
关于如何以更清洁的方式解决这个问题的任何建议?
答案 0 :(得分:3)
如果您希望将它们作为原始订单中的流,请使用keys_unsorted[]
;
如果您希望首先对它们进行排序,请使用keys[]
。