機械翻訳について

フィルタを作成するためのJQ式の構文

この項では、フィルタ条件の作成に使用できる一般的なJQ構文要素について説明します。

JQフィルタ 説明 JSONサンプル 結果
[.[]]
配列のすべての要素を選択します。
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
[.[] | .field]
配列内の各オブジェクトから特定のフィールドを選択します。
[{ "field": "value1" }, { "field": "value2" }]
["value1", "value2"]
[.[] | select(.field == "value")]
特定のフィールドが値と等しいエレメントをフィルタします。
[{ "field": "value1" }, { "field": "value2" }]
[{ "field": "value1" }]
map(has("field"))
適用された特定の関数の結果を抽出します。
[{ "field": "value1" }, { "field": "value2" }]
[true, true]
[.[] | .field | select(. == "value")]
特定のフィールドが値と等しい配列の要素をフィルタします。
[{ "field": "value" }, { "field": "value1" }]
["value"]
[.[] | select(length > 5)]
長さが5より大きい要素をフィルタします。
["apple", "banana", "orange", "grape"]
["banana", "orange"]
[.[] | select(.field1 == "value" and .field2 > 10)]
両方の条件が真であるエレメントを選択します。
[{"field1": "value", "field2": 15}, {"field1": "value", "field2": 20}]
[{"field1": "value", "field2": 15}, {"field1": "value", "field2": 20}]
[.[] | select(.field1 == "value" or .field2 > 10)]
少なくとも1つの条件が真であるエレメントを選択します。
[{"field1": "value", "field2": 5}, {"field1": "other_value", "field2": 15}]
[{"field1": "value", "field2": 5}, {"field1": "other_value", "field2": 15}]
[.[] | select(.field1 == "value" and .field2 < 10)]
両方の条件が真であるエレメントを選択します。
[{ "field1": "value", "field2": 5 }, { "field1": "other_value", "field2": 15 }]
[{"field1": "value", "field2": 5}]
[.[] | select(.field1 == "value" and (.field2 > 10 or .field3 == "include"))]
and条件とor条件を組み合せて、最初の条件がtrueで、2番目の条件がtrueまたは3番目の条件がincludeである要素をフィルタします。
[{"field1": "value", "field2": 5, "field3": "include"}]
[{"field1": "value", "field2": 5, "field3": "include"}]
[.[] | select(.field1 != "value")]
field1valueと等しくない要素を選択します。
[{ "field1": "other_value", "field2": 15 }, { "field1": "value", "field2": 5 }]
[{"field1": "other_value", "field2": 15}]
[.[] | select(.field1 == "value" and (.field2 > 10 and .field3 == "include"))]
and条件を組み合せて、最初の条件がtrueで、2番目と3番目の条件の両方がtrueである要素をフィルタします。
[{"field1": "value", "field2": 15, "field3": "include" }]
[{"field1": "value", "field2": 15, "field3": "include"}]
[.[] | select(.field1 == "value" or (.field2 > 10 and .field3 == "include"))]
or条件を組み合せて、最初の条件がtrueであるか、2番目と3番目の条件の両方がtrueである要素をフィルタします。
[{"field1": "other_value", "field2": 15, "field3": "include" }, { "field1": "value", "field2": 5, "field3": "include" }]
[{"field1": "other_value", "field2": 15, "field3": "include"}], [{"field1": "value",
 "field2": 5, "field3": "include"}]
[.[] | select(.field1 == "value" and .field2 > 10 and .field3 != "exclude")]
複数のand条件を組み合せて、すべての条件がtrueの要素をフィルタします。
[{ "field1": "value", "field2": 15, "field3": "include" }]
[{"field1": "value", "field2": 15, "field3": "include"}]
[.[] | select(.field1 != "value" and (.field2 <= 10 or .field3 == "exclude"))]
not条件とor条件を組み合せて、field1valueではなく、field210以下またはfield3excludeである要素をフィルタします。
[{"field1": "other_value", "field2": 5, "field3": "exclude"}]
[{"field1": "other_value", "field2": 5, "field3": "exclude"}]
.[]|.foo>30 and .bar== "less interesting data"|.==true
値を返すのではなく、実行中に正確にtrueを返します。
[{"foo": 42, "bar": "less interesting data"}]
true