使用 jq 从 JSON 文件中递归获取键名
Posted
技术标签:
【中文标题】使用 jq 从 JSON 文件中递归获取键名【英文标题】:Get key names from JSON file recursively using jq 【发布时间】:2018-05-15 11:12:16 【问题描述】:我可以使用jq
获取*** JSON 密钥
jq 'keys'
例如,看到这个问题:Get key names from JSON file using jq
我可以在jq
中启用递归:
jq '..'
如:Recursive search values by key
但是jq '.. | keys'
返回jq: error at <stdin> string has no keys
。
【问题讨论】:
【参考方案1】:当 JSON 中的某些值不存在键时忽略键:
jq '.. | keys?'
【讨论】:
这不适用于对象数组: $ echo ' "array1" : [ "obj" : "data" ] ' | jq'.. |钥匙?产生:[“array1”][0][“obj”]【参考方案2】:检查键名时忽略非对象:
jq -r '.. | if type == "object" then to_entries[] | .key else empty end' "$LOCALAPPDATA/Google/Chrome/User Data/default/Bookmarks" | sort --uniq
bookmark_bar
checksum
children
date_added
date_modified
guid
id
name
other
roots
synced
type
url
version
【讨论】:
以上是关于使用 jq 从 JSON 文件中递归获取键名的主要内容,如果未能解决你的问题,请参考以下文章
从 JSON 中获取键名和值名并在 Highcharts 中使用