[解決済み] JQ:キーに対するフィルタリング
2022-02-15 22:10:38
質問
JQコマンドを使って、jsonオブジェクトにフィルタをかけ、選択的にキーを抽出しようとしています。 以下は、ファイルx.txtに配置したサンプルオブジェクトです。
{
"activities" : {
"-KSndgjqvmQkWVKHCpLh" : {
"create_device" : "...",
"stop_time_utc" : "2016-11-01T23:08:08Z"
},
"-KSoBSrBh6PZcjRocGD7" : {
"create_device" : "..."
},
"-KSptboGjo8g4bieUbGM" : {
"create_device" : "...",
"stop_time_utc" : "2017-01-17T23:08:08Z"
}
}
}
以下のコマンドで、すべてのアクティビティキーを抽出することができます。
cat x.txt | jq '.activities | keys'
[
"-KSndgjqvmQkWVKHCpLh",
"-KSoBSrBh6PZcjRocGD7",
"-KSptboGjo8g4bieUbGM"
]
私は、オブジェクトをフィルタリングしてstop_time_utc値を持つアクティビティエントリのみを選択し、有効期限が切れたアクティビティのみを選択するために"select(.stop_time_utc | fromdateiso8601 > now)" などを使って数時間ググって実験しています。例えば、フィルターを使用して、関連する1つのエントリのみを持つサンプルオブジェクトから配列を作成したいと思います。
[
"-KSndgjqvmQkWVKHCpLh"
]
keysオプションで試すのは間違ったルートなのでしょうか? 何かアイデアや提案があれば、ぜひお願いします。
解決方法は?
with_entries/1
はあなたの味方です、例えば
.activities | with_entries( select(.value | has("stop_time_utc") ) )
を生成します。
{
"-KSndgjqvmQkWVKHCpLh": {
"create_device": "...",
"stop_time_utc": "2016-11-01T23:08:08Z"
},
"-KSptboGjo8g4bieUbGM": {
"create_device": "...",
"stop_time_utc": "2017-01-17T23:08:08Z"
}
これで、選択条件を追加したり、注目のキーネームを抽出したりすることが簡単にできるようになりました。 例えば
.activities
| with_entries( select( (.value.stop_time_utc? | fromdateiso8601?) < now ) )
| keys
関連
-
[解決済み] SQLキー、MUL vs PRI vs UNI
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JavaScriptでオブジェクトのキー/プロパティの数を効率的にカウントする方法
-
[解決済み] Notepad++でJSONを再フォーマットする方法は?
-
[解決済み] JSON APIのレスポンス形式には規格がありますか?
-
[解決済み] 許容されるキーの配列を使って、そのキーで配列をフィルタリングする
-
[解決済み】Djangoモデル - 大文字小文字を区別しないクエリ/フィルタリング
-
[解決済み] jsonパラメータを含むCurl GETリクエスト
-
[解決済み] Swift 4 の JSONDecoder で、見つからないキーは、オプションのプロパティである必要はなく、デフォルト値を使うことができますか?
-
[解決済み] Scalaの標準クラスを使ってScalaでJSONをパースするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 型 '{}' は型 'IntrinsicAttributes & IntrinsicClassAttributes' に代入できません。
-
[解決済み] Unreadable Notebook NotJSONError('Notebook does not appear to be JSON: u'{'cells": [\'{'cell_type": "...],)
-
[解決済み] マニフェスト 行: 1, 列: 1, 構文エラー
-
JsonParseException: 不正な引用符なしの文字 ((CTRL-CHAR, コード 10)): ha
-
[解決済み] JSONとは何か、何に使うのか?
-
[解決済み] JSONでnullを表現する
-
[解決済み] JSONのXSLT対応
-
[解決済み] Express アプリケーションで JSON POST データを消費する方法
-
[解決済み] Node.jsでJSONオブジェクトの内容をログに記録する方法は?
-
[解決済み] fs.writeFileSyncによるJSONオブジェクトのJSONファイルへの書き込み