3

この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を使用してフィルタリングしfeatures、プロパティを持つものを選択したいと思いMODE: Dます。私の知る限り、クエリは機能するjq .[] | select(.MODE == "D")はずですが、機能しません!

私は何が欠けていますか?

前もって感謝します。

4

2 に答える 2

2

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

疑問符は、エラーを無視するように jq に指示します。.. は、オブジェクトに再帰することです

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

メソッドの違いに注意するためだけに、再帰なしで結果を取得します

参考:https ://github.com/stedolan/jq/issues/610

于 2014-11-04T17:56:44.623 に答える
1

あなたはかなり欠けています。あなたは使用.[]しましたが、それは何を達成することになっていますか? は、フィーチャのオブジェクトのMODEプロパティです。properties

.features | map(select(.properties.MODE == "D"))
于 2014-11-04T17:56:52.377 に答える