如何使用jq将lat、lon字段合并为指定名称的lonlat数组
jq 转换JSON结构实现方法
你可以直接使用以下命令完成指定的JSON结构调整:
jq 'map({capital, lonlat: [.lon, .lat]})' 输入文件路径
命令逻辑说明
map()用于遍历输入的JSON数组,对数组内每一个对象执行后续的重构操作- 重构新对象时直接保留原有的
capital字段,同时新增lonlat数组,按照需求顺序先写入经度.lon的值,再写入纬度.lat的值 - 原有
lat、lon字段会因为没有加入新对象的声明,自动被移除,输出结果完全匹配预期
效果验证
运行命令后对应你提供的示例输入,输出结果如下:
[ { "capital": "St. John's", "lonlat": [ -61.8457, 17.1172 ] }, { "capital": "Buenos Aires", "lonlat": [ -58.4004, -34.6051 ] } ]
内容的提问来源于stack exchange,提问作者Kasper Kamperman
相关产品推荐
相关产品推荐

