Shellスクリプト処理JSONデータツールjq
3111 ワード
LInuxでjsonデータを処理する必要がある場合、第1の反応はスクリプトでツールを記述することであり、時間がかかり、汎用性がない.本稿では、専用のコマンドラインjson処理ツールjqについて説明する.
1、インストール:
1)Ubuntuユーザーは、以下のコマンドを直接使用してインストールできます.
https://github.com/stedolan/jq3)実行可能ファイルを直接ダウンロードする:
https://stedolan.github.io/jq/
2、使用:
1)解析json:
3)組み込み関数keys:
4)組み込み関数has:
参照先:
https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html
1、インストール:
1)Ubuntuユーザーは、以下のコマンドを直接使用してインストールできます.
$ sudo apt-get install jq
)ソースコードのインストールを採用する:https://github.com/stedolan/jq3)実行可能ファイルを直接ダウンロードする:
https://stedolan.github.io/jq/
2、使用:
{
"name": " ",
"province": [{
"name": " ",
"cities": {
"city": [" ", " "]
}
}, {
"name": " ",
"cities": {
"city": [" ", " ", " "]
}
}, {
"name": " ",
"cities": {
"city": [" ", " "]
}
}, {
"name": " ",
"cities": {
"city": [" "]
}
}]
}
1)解析json:
$ cat test.json | jq '.name'
" "
$ cat test.json | jq '.province[0].name'
" "
$ cat test.json | jq '.province[].name'
" "
" "
" "
" "
)抽出フィールド:$ cat test.json | jq '.province[0]'
{
"cities": {
"city": [
" ",
" "
]
},
"name": " "
}
$ cat test.json | jq '.province[]'
{
"cities": {
"city": [
" ",
" "
]
},
"name": " "
}
{
"cities": {
"city": [
" ",
" ",
" "
]
},
"name": " "
}
{
"cities": {
"city": [
" ",
" "
]
},
"name": " "
}
{
"cities": {
"city": [
" "
]
},
"name": " "
}
$ cat test.json | jq '.province[0] | {name ,cities}'
{
"cities": {
"city": [
" ",
" "
]
},
"name": " "
}
$ cat test.json | jq '.province[0] | {name}'
{
"name": " "
}
3)組み込み関数keys:
$ cat test.json | jq 'keys'
[
"name",
"province"
]
$ cat test.json | jq '.|keys'
[
"name",
"province"
]
$ cat test.json | jq '.province[0]|keys'
[
"cities",
"name"
]
$ cat test.json | jq '.province[]|keys'
[
"cities",
"name"
]
[
"cities",
"name"
]
[
"cities",
"name"
]
[
"cities",
"name"
]
4)組み込み関数has:
$ cat test.json | jq 'has("name")'
true
$ cat test.json | jq '.province[0] | has("name")'
true
$ cat test.json | jq 'has("noname")'
false
参照先:
https://www.ibm.com/developerworks/cn/linux/1612_chengg_jq/index.html