- blogs:
- cles::blog
« iPhone 用の大砲レンズ? :: PuTTY で切れないトンネルを »
2013/12/03

シェルスクリプトで JSON のデータを処理する



最近は API の返り値が JSON になっていることは珍しくなくなってきましたが、API をりようしたちょっとしたスクリプトを書くときに JSON の中身からデータを取り出して処理したいとなるとちょっと厄介です。これまでは JSON パーサーを持った Ruby や Node.JS なんかを使っていちいち処理を書いていたのですが、やはりちょっとヘビーなのでうまく bash だけでやる方法がないかどうか調べてみました。
いくつかググって調べてみたら Node.JS を利用したコマンドラインの jsontool *1 というプロダクトが見つかりました。
インストールは Node.JS が導入されていれば nph で一撃です。
# npm install -g jsontool
npm http GET https://registry.npmjs.org/jsontool
npm http 200 https://registry.npmjs.org/jsontool
npm http GET https://registry.npmjs.org/jsontool/-/jsontool-7.0.1.tgz
npm http 200 https://registry.npmjs.org/jsontool/-/jsontool-7.0.1.tgz
/usr/bin/json -> /usr/lib/node_modules/jsontool/lib/jsontool.js
jsontool@7.0.1 /usr/lib/node_modules/jsontool
# json --version
json 7.0.1
written by Trent Mick
https://github.com/trentm/json
以下、簡単な実行例を。
あとはこんな感じで簡単に JSON から必要なデータを取り出すことができます。
perl にあった xpath コマンドのような感じですね。
$ echo '{"a":"123","b":[1,2,3],"c":{"1":"a","2":"b","3":"c"}}' | json
{
"a": "123",
"b": [
1,
2,
3
],
"c": {
"1": "a",
"2": "b",
"3": "c"
}
}
$ echo '{"a":"123","b":[1,2,3],"c":{"1":"a","2":"b","3":"c"}}' | json a
123
$ echo '{"a":"123","b":[1,2,3],"c":{"1":"a","2":"b","3":"c"}}' | json b
[
1,
2,
3
]
$ echo '{"a":"123","b":[1,2,3],"c":{"1":"a","2":"b","3":"c"}}' | json b[0]
1
$ echo '{"a":"123","b":[1,2,3],"c":{"1":"a","2":"b","3":"c"}}' | json c.1
a
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6311
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
« iPhone 用の大砲レンズ? :: PuTTY で切れないトンネルを »
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112131)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110777)
3 . 年次の人間ドックへ(110372)
4 . 2023 年分の確定申告完了!(1つめ)(109918)
5 . 三菱鉛筆がラミーを買収(109818)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110777)
3 . 年次の人間ドックへ(110372)
4 . 2023 年分の確定申告完了!(1つめ)(109918)
5 . 三菱鉛筆がラミーを買収(109818)
cles::blogについて
Referrers