質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

2回答

2960閲覧

データ抽出件数が0件の場合、配列0のJSONを返したい

engnao

総合スコア29

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2020/09/15 07:52

JSONについて質問です。
jqを使用してデータを抽出しているのですが、データ抽出件数が0件の場合、配列0のJSON出力をかえすにはどのような意味でどのようにコードを書けば良いでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

回答本文

// という演算子があるので、それが使えるかもしれませんん。
jqのマニュアル

jq "{フィルター処理} // []" でフィルターの結果が空になった時に、//の後ろにある値を返すように出来るみたいです。

以下、試してみた例

GitHubAPIを用いて、特定ユーザーのリポジトリの情報を使った例

bash

1# フィルター処理の結果が1件以上 2» curl https://api.github.com/users/attakei/repos 2>/dev/null| jq "map(select(.id == 138411110)) // []" 3[ 4 { 5 "id": 138411110, 6 "参考用のJSONなので", "中略", 7 "default_branch": "master" 8 } 9] 10 11# フィルター処理の結果が0件 12» curl https://api.github.com/users/attakei/repos 2>/dev/null| jq "map(select(.id == 138411111)) // []" 13[]

投稿2020/09/16 10:44

attakei

総合スコア2740

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

engnao

2020/09/16 11:28

attakeiさん 回答ありがとうございます。 頂いた内容通り、処理の後、// [] と書く事で問題解決いたしました。
kuma_kuma_

2020/09/16 11:30

「JQ」というのがあるのですね 知りませんでした。 訂正しておきます。
guest

0

jqを使用して

jQueryの事?

データを抽出しているのがどんな処理なのかわからないけど

javascript

1/* 2var jsArray = []; // 配列0のJSON 3jsArray.push({ id: 1, name: 'Kojima' }); // こんな感じで追加 4*/

という事なのかな?
細かくは【JavaScript】オブジェクト(連想)配列の初期化・追加・参照・更新・削除を参照してね---

追記
jq Manual
こちらの内容との事なので回答を取り消しさせていただきます。
失礼しました。

投稿2020/09/16 08:51

編集2020/09/16 11:34
kuma_kuma_

総合スコア2506

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

engnao

2020/09/16 11:30

kuma_kuma_ さん 回答ありがとうございます。 jQueryの事です。jq "{フィルター処理} // []" で解決いたしました。
kuma_kuma_

2020/09/16 11:38

ん?jQueryであっていた?
engnao

2020/09/17 01:40

知識不足ですみません。 jqコマンド→JSONプロセッサ jQuery→node.jsのnpmモジュール 全くの別物であり、今回の質問内容はjqコマンドの事を言っております。 失礼いたしました。
kuma_kuma_

2020/09/17 01:45

いえいえ こちらこそ知識不足でちがう回答となってしまいました 混乱させてしまってすみません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問