解析错误:第1行第9列的数字文字无效

时间:2016-01-14 15:57:36

标签: json jq

我了解jq搜索需要被{}阻止,并且密钥需要包含",例如:

{
  "id": 36815684
}

但如果我有这样的话:

X-RateLimit-Reset: 1452786798

我收到此错误:

  

解析错误:第1行第9列的数字文字无效

我是否需要回归sed/awk/perl ..或者是否有更优雅的方式使用jq?

1 个答案:

答案 0 :(得分:3)

除了根本不使用jq之外,你还有两个主要选择:

(1)预处理非JSON以使其成为JSON

(2)使用-R命令行选项,例如

echo "X-RateLimit-Reset: 1452786798" | jq -R 'split(":")'

[
  "X-RateLimit-Reset",
  " 1452786798"
]

因此,如果您知道该值将是数字:

echo "X-RateLimit-Reset: 1452786798" |
  jq -Rc 'split(":") | {(.[0]) : (.[1]|tonumber)}'
{"X-RateLimit-Reset":1452786798}

请注意,虽然" j"在jq中是JSON,jq(使用-R选项)对文本处理很好。