使用jq将GeoJSON转换为平面JSON



假设我有以下GeoJSON文件:

{
"type": "FeatureCollection",
"name": "geojson",
"features": [
{
"type": "Feature",
"properties": {
"id": 1,
"value1": 4.7557783e-06,
"value2": 0
},
"geometry": null
},
{
"type": "Feature",
"properties": {
"id": 1,
"value1": 1.4931199e-05,
"value2": 5
},
"geometry": null
}
]
}

我知道用cat file.geojson | jq '.features[].properties'行我可以得到以下结果:

{
"id": 1,
"value1": 4.7557783e-06,
"value2": 0 
}   
{     
"id": 1,
"value1": 1.4931199e-05,
"value2": 5
}       

然而,我希望在如下数组中得到这个结果:

[
{
"id": 1,
"value1": 4.7557783e-06,
"value2": 0
},
{
"id": 1,
"value1": 1.4931199e-05,
"value2": 5
}
]

如何将括号[]和适当的逗号,jq相加以形成最后一个平面JSON文件?

您可以将整个过滤器包装到括号中

jq '[.features[].properties]' file.geojson

演示

或者利用.features已经是一个数组而map只是它的内容这一事实。

jq '.features | map(.properties)' file.geojson

演示

两个输出

[
{
"id": 1,
"value1": 4.7557783e-06,
"value2": 0
},
{
"id": 1,
"value1": 1.4931199e-05,
"value2": 5
}
]

相关内容

  • 没有找到相关文章

最新更新