输入json:
{
"food_group": "fruit",
"glycemic_index": "low",
"fruits": {
"fruit_name": "apple",
"size": "large",
"color": "red"
}
}以下两个jq命令有效:
# jq -r 'keys_unsorted[] as $key | "\($key), \(.[$key])"' food.json
food_group, fruit
glycemic_index, low
fruits, {"fruit_name":"apple","size":"large","color":"red"}
# jq -r 'keys_unsorted[0:2] as $key | "\($key)"' food.json
["food_group","glycemic_index"]如何使用jq以相同的方式获取前两个键的值?我在下面试过了
# jq -r 'keys_unsorted[0:2] as $key | "\($key), \(.[$key])"' food.json
jq: error (at food.json:9): Cannot index object with array预期输出:
food_group, fruit
glycemic_index, low发布于 2021-08-07 03:59:53
要遍历散列数组,可以使用to_entries,它将转换为数组。
之后,您可以使用select来过滤您想要保留的行。
jq -r 'to_entries[]| select( ( .value | type ) == "string" ) | "\(.key), \(.value)" ' https://stackoverflow.com/questions/66415016
复制相似问题