如何解决将对象的值添加到数组的每个元素中
我有一个看起来像这样的json对象:
{
"data": {
"id" : 1234,"details": [
{
"vid": "332","long": -79,"lat": 45
},{
"vid": "33","long": -77,"lat": 32
}
]
}
}
我想从如下数据中输出一个csv文件:
"1234","332","-79","45"
"1234","33","-77","32"
例如我想从另一个节点的数组对象中的每个节点中添加一些东西,实质上是对数据进行非规范化。
是否可以从json数据中的其他位置访问值?
解决方法
或者没有变量:
jq -r '.data | [.id] + (.details[] | [.vid,.long,.lat]) | @csv' file.json
如果您真的希望所有值都被引用,只需在流水线的最后一个map(tostring)
之前将@csv
添加到管道中即可。
您可以使用变量来做到这一点:
jq '.data.id as $id | .data.details[] | [$id,.vid,.lat]' file.json
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。