使用jq解析含点号键名的复杂JSON提取指定字段失败求助
问题原因
- 键名拼写错误:你调用的是
.result[0],但你提供的JSON结构中对应数组的键名为复数形式results,拼写不一致导致第一层取值就返回null。 - 带特殊字符的键访问规则错误:
com.src.main.client.details是单个字段名,直接用点语法访问时,jq会将其识别为com下的src下的main下的client下的details多层嵌套键,而非完整的单个键,自然取不到值。
解决方案
正确的jq命令写法如下:
# 提取results数组第一个元素的对应字段 jq '.results[0]["com.src.main.client.details"]' temp.json > result.json
如果需要提取results数组所有元素的对应字段,可修改为:
# 提取results数组所有元素的对应字段 jq '.results[] ["com.src.main.client.details"]' temp.json > result.json
内容的提问来源于stack exchange,提问作者sagar verma
相关产品推荐
相关产品推荐

