使用JQ过滤GeoJSON

4
给定这个 JSON
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "MODE": "A"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          -69.23583984375,
          45.460130637921004
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {
        "MODE": "D"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [
          -69.23651039600372,
          45.46053888199693
        ]
      }
    }
  ]
}

我想使用jq来筛选并选择具有MODE: D属性的features。 就我所知,查询jq .[] | select(.MODE == "D")应该有效,但它不起作用!您还需要什么吗?
提前致谢。
2个回答

2

你还有很多东西需要补充。你使用了.[],但这是为了实现什么目的?MODE是要素的properties对象的属性。

.features | map(select(.properties.MODE == "D"))

2

jq ' .. | select( has("properties") )? | select( .properties.MODE == "D")'

这句话中的问号告诉 jq 忽略错误。两个点号是用来递归进入对象的。

jq '.features[] | select(.properties.MODE == "D")'

这句话将会得到你想要的结果,而不需要递归。请注意这两种方法之间的差异。
参考:https://github.com/stedolan/jq/issues/610

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接