我有一个像这样的JSON文件:
{
"images1" :
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-Small@2x.png",
"scale" : "2x"
},
"images2" :
{
"size" : "29x30",
"idiom" : "iphone2",
"filename" : "Icon-Small@2x.png2",
"scale" : "22x"
}
}
我将传递JSON对象名作为输入。所以,如果我知道" images1"是对象,然后我需要将该对象的所有键和值存储在两个单独的数组中,以便我可以在进一步处理中使用它们。
非常感谢任何帮助。 感谢
答案 0 :(得分:1)
您可以使用以下内容:
jq ".$1 | { keys: keys_unsorted, values: [.[]] }"
其中$1
应提供您要解决的项目的名称(请注意,这假设您在脚本中使用此项。您可能希望使用fedorqui的替代方案)
它将生成一个对象,其keys
属性将是$1
和values
键的数组,其中包含相关值的数组:
$ echo '{
"images1" :
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-Small@2x.png",
"scale" : "2x"
},
"images2" :
{
"size" : "29x30",
"idiom" : "iphone2",
"filename" : "Icon-Small@2x.png2",
"scale" : "22x"
}
}' | jq ".images1 | { keys: keys_unsorted, values: [.[]] }"
{
"keys": [
"size",
"idiom",
"filename",
"scale"
],
"values": [
"29x29",
"iphone",
"Icon-Small@2x.png",
"2x"
]
}