如何使用JQ从JSON中提取Name、Type及嵌套的DNSName字段值
解决方案
你只需要在AliasTarget后追加.DNSName即可访问嵌套的字段属性,正确的jq查询语句如下:
.ResourceRecordSets[] | "\(.Name) \t\(.Type) \t\(.AliasTarget.DNSName)"
如果需要输出结构化的JSON格式方便后续处理,也可以使用下面的写法,直接生成仅包含三个目标字段的JSON对象:
.ResourceRecordSets[] | {Name, Type, DNSName: .AliasTarget.DNSName}
补充说明
jq中嵌套对象的字段访问规则和绝大多数编程语言一致,通过.符号逐层拼接字段路径即可获取对应层级的属性值,你的原写法仅访问到AliasTarget层级,因此返回的是整个对象,补全路径到DNSName即可拿到目标值。
内容的提问来源于stack exchange,提问作者jonnybinthemix
相关产品推荐
相关产品推荐

