2017-05-19 17 views
1

を持つオブジェクトの配列インデックスを検索:JQ:私は、次のしている特定の属性値

{"arr":[{"Name":"web"},{"Name":"app"}]} 

私は、属性「名前に「アプリ」を持たないすべての配列オブジェクトの配列インデックスを見つける必要があり"

私は「選択」と「キー」の組み合わせを使用しようとしたが、これは動作しません

jq '.arr[] | select(.Name != "app") | keys' 

答えて

1

ここでは多くの可能性の一つだ:

.arr | range(0;length) as $i | select(.[$i].Name != "app") | $i 

そして、もう少し簡単にあまり効率:

.arr | to_entries[] | select(.value.Name != "app") | .key 

そして、あなたがのためのスタイルのループを使用することがうずうずしている場合、またはあなたがアボを考えるために何かをしたい場合T:ここ

foreach .arr[] as $o (-1; .+1; select($o.Name != "app")) 
0

tostreamを使用するソリューションです。

 tostream 
    | if .[0][-1] == "Name" and .[1] == "app" 
     then .[0][-2] 
     else empty 
     end 
関連する問題