2018/12/26

jq (JSON parser) 處理含有 "-" (dash) 的 key 名稱

爬 log 剛好遇到 JSON 的其中一個 key 名稱中有「-」(dash) 符號,所以 console 怎麼寫都有錯誤訊息:
$ cat log | cut -d$'\t' -f 4 | jq   .http-post
jq: error: post/0 is not defined at , line 1:
.http-post
jq: 1 compile error

從錯誤訊息可以看到「http-post」被切斷了。

若 key name 有特殊符號,或是特殊字元,記得要用引號包起來進行查詢:
$ cat log | cut -d$'\t' -f 4 | jq '."http-post"'
{
  "action": "get",
  "name": "John",
  "category": "RD",
}

沒有留言:

張貼留言

除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)