# Jq,Linux 最強大的 Json 解析工具

官網:https://stedolan.github.io/jq/

# 簡介

最近工作經常撰寫 Shell Script 與使用 curl 打請求,Json 是 API 中常見的回傳格式,於是在前輩的強烈安利下,了解一下這個在命令行中非常強大的 Json 解析工具。

# 格式化 Json

echo '{"a":1,"b":[{"c":"d"}],"e":"aaa"}' | jq .
{
  "a": 1,
  "b": [
    {
      "c": "d"
    }
  ],
  "e": "aaa"
}

# 取值

echo '{"a":1,"b":[{"c":"d"}],"e":"aaa"}' | jq .e
"aaa"

# 取值 (無引號)

echo '{"a":1,"b":[{"c":"d"}],"e":"aaa"}' | jq -r .e
aaa

# 取陣列

echo '{"a":1,"b":[{"c":"d"}],"e":"aaa"}' | jq .b[]
{
  "c": "d"
}

# 取陣列

echo '{"a":1,"b":[{"c":1},{"c":2}],"e":"aaa"}' | jq .b[]
{
  "c": 1
}
{
  "c": 2
}

# 取陣列數量

echo '{"a":1,"b":[{"c":1},{"c":2}],"e":"aaa"}' | jq .b | jq length
2

# 判斷值

echo '{"a":1,"b":[{"c":1},{"c":2}],"e":"aaa"}' | jq ".b[] | select(.c == 1)"
{
  "c": 1
}

# 結語

基本上這些教學已經很夠用了,更多雜的用法可以到這裡查詢。