「jq」の版間の差分
提供: Node.js/JavaScript入門
行109: | 行109: | ||
true | true | ||
true | true | ||
+ | </syntaxhighlight> | ||
+ | === 必要なデータを取り出して、整形する === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ jq '.[]| "\(.name) is \(.age)"' b.json | ||
+ | "foo is 10" | ||
+ | "bar is 20" | ||
+ | "hoge is 30" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== 関連項目 == | == 関連項目 == |
2014年9月8日 (月) 23:12時点における版
jqコマンドとは、コマンドライン JSON プロセッサです。jsonデータの整形や抽出ができます。jqコマンドとは別の存在として、node.jsのnpmモジュールとして、サーバサイド jQuery ラッパーの名前も jq です。
読み方
- jq
- じぇーきゅー
目次
概要
jqコマンドは、awkやsedのように整形や加工を行うコマンドです。
直列で表示されたJSONフォーマットは、ヒューマンリーダブルではありません。
[{"name":"foo","age":10},{"name":"bar","age":20},{"name":"hoge","age":30}]
このように展開することによって、可読性が改善します。
[ { "age": 10, "name": "foo" }, { "age": 20, "name": "bar" }, { "age": 30, "name": "hoge" } ]
インストール
FreeBSD
$ sudo pkg install jq
Ubuntu
$ sudo apt-get install jq
CentOS
$ sudo yum -y install jq
Mac
brew install jq
使い方
コマンドラインオプション
jq - commandline JSON processor [version 1.3] Usage: jq [options] <jq filter> [file...] For a description of the command line options and how to write jq filters (and why you might want to) see the jq manpage, or the online documentation at http://stedolan.github.com/jq
JSONを整形して表示する
$ cat b.json [{"name":"foo","age":10},{"name":"bar","age":20},{"name":"hoge","age":30}] $ jq . b.json [ { "age": 10, "name": "foo" }, { "age": 20, "name": "bar" }, { "age": 30, "name": "hoge" } ]
JSONからn番目のエントリを抽出する
インデックスの値は、0から数えます。2番目を表示するには、1を指定します。
$ jq '.[1]' b.json { "age": 20, "name": "bar" }
JSONで特定のフィールドを抽出する
2番めのageのフィールドだけを抽出します。
$ jq '.[1].age' b.json 20
すべてのageのフィールドを抽出します。
$ jq '.[].age' b.json 10 20 30
値の範囲を指定する
$ jq '.[].age >= 20 ' b.json false true true
必要なデータを取り出して、整形する
$ jq '.[]| "\(.name) is \(.age)"' b.json "foo is 10" "bar is 20" "hoge is 30"