./jqをインストールする


./jqをインストールする | Bamboo lath 日々の記録./jqをインストールする

MOONGIFT:JSONを使った開発のお供にどうぞ「jq」

JSONデータ構造を見やすくしてくれるコマンド。

本家サイト

jq is like sed for JSON data – you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.

■環境確認

# cat /etc/redhat-release
CentOS release 5.7 (Final)
# uname -a
Linux xxxxxxx.com 2.6.32-042stab049.6 #1 SMP Mon Feb 6 19:16:12 MSK 2012 i686 i686 i386 GNU/Linux

■ソースのダウンロード(今回の環境ではDownload source)

# cd /usr/local/src/
# wget http://stedolan.github.com/jq/download/source/jq.tgz
--2012-11-02 14:02:39--  http://stedolan.github.com/jq/download/source/jq.tgz
stedolan.github.com をDNSに問いあわせています... 204.232.175.78
stedolan.github.com|204.232.175.78|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 450943 (440K) [application/octet-stream]
`jq.tgz' に保存中

100%[===================================================================================================================>] 450,943      339K/s 時間 1.3s

2012-11-02 14:02:41 (339 KB/s) - `jq.tgz' へ保存完了 [450943/450943]

■ソースの展開

# tar xzvf jq.tgz
stedolan-jq-95a0074/
stedolan-jq-95a0074/.gitignore
.....ずらずら.....
stedolan-jq-95a0074/testdata

■フォルダに入ってmake

# cd stedolan-jq-95a0074/
# ls
COPYING    builtin.h   compile.h  forkable_stack.h    jv.c       jv_parse.c    jv_unicode.h          lexer.l    opcode.h       parser.gen.info
Makefile   bytecode.c  docs       frame_layout.h      jv.h       jv_parse.h    jv_utf8_tables.gen.h  locfile.h  opcode_list.h  parser.h
README.md  bytecode.h  execute.c  gen_utf8_tables.py  jv_dtoa.c  jv_print.c    lexer.gen.c           main.c     parser.gen.c   parser.y
builtin.c  compile.c   execute.h  jq_test.c           jv_dtoa.h  jv_unicode.c  lexer.gen.h           opcode.c   parser.gen.h   testdata
# make
gcc -Wextra -Wall -Wno-missing-field-initializers -Wno-unused-parameter -std=gnu99 -ggdb -Wno-unused-function -O -DJQ_DEBUG=0 -o jq parser.gen.c lexer.gen.c opcode.c bytecode.c compile.c execute.c builtin.c jv.c jv_parse.c jv_print.c jv_dtoa.c jv_unicode.c main.c
# ll
合計 860
-rw-rw-r-- 1 root root   2957 10月 22 03:52 COPYING
....
-rwxrwxr-x 1 root root 292707 11月  2 14:04 jq
....

■「jq」が出来たので「/usr/local/bin/」にシンボリックを貼ってコマンドを登録

# cd /usr/local/bin/
# ln -s /usr/local/src/stedolan-jq-95a0074/jq
# ll
合計 5932
.....
lrwxrwxrwx 1 root root      37 11月  2 14:05 jq -> /usr/local/src/stedolan-jq-95a0074/jq
.....

■サイトのサンプルを試す

# curl 'http://search.twitter.com/search.json?q=json&rpp=5&include_entities=true' | jq '.results[0]'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5192  100  5192    0     0  11854      0 --:--:-- --:--:-- --:--:-- 2708k
{
  "to_user_name": null,
  "to_user_id_str": "0",
  "to_user_id": 0,
  "id": 264231272392581120,
  "geo": null,
  "from_user_name": "Chris Johnson",
  "from_user_id_str": "911210857",
  "from_user_id": 911210857,
  "from_user": "CHRISpy_Json",
  "entities": {
    "user_mentions": [],
    "urls": [],
    "hashtags": [
      {
        "indices": [
          103,
          121
        ],
        "text": "accomplishedtweet"
      }
    ]
  },
  "created_at": "Fri, 02 Nov 2012 05:03:39 +0000",
  "id_str": "264231272392581120",
  "iso_language_code": "en",
  "metadata": {
    "result_type": "recent"
  },
  "profile_image_url": "http://a0.twimg.com/profile_images/2777986607/635aaa3cc2f805fb9f642d6e616e3ce0_normal.jpeg",
  "profile_image_url_https": "https://si0.twimg.com/profile_images/2777986607/635aaa3cc2f805fb9f642d6e616e3ce0_normal.jpeg",
  "source": "<a href="http://twitter.com/download/iphone">Twitter for iPhone</a>",
  "text": "It's 1 in the morning, i just finished all of my hw, i got to skype ailise and i'm not even that tired #accomplishedtweet",
  "to_user": null
}

出来たー

コメントを残す

メールアドレスが公開されることはありません。