jQuery解析错误:第1行第9列的数字常量无效

时间:2019-12-14 17:18:05

标签: json bash shell curl jq

我试图使用curl从URL的json文件中获取值,然后使用jq命令(例如company)打印特定键。不幸的是,当我使用: jq '.[] | .company' JB.json 我收到错误: parse error: Invalid numeric literal at line 1, column 9。我检查的下载文件少了一些,它看起来与url中的样子完全一样。

有人建议使用-R选项,但它会打印: jq: error: Cannot iterate over string

文件的网址为:https://jobs.github.com/positions.json?description=python&location=new+york

1 个答案:

答案 0 :(得分:1)

如果您使用curl -sS来检索文件,则会跳过'//'样式的注释:

curl -Ss 'https://jobs.github.com/positions.json?description=python&location=new+york' | jq '.[] | .company' 
"BentoBox"
"Aon Cyber Solutions"
"Sesame"
"New York University"

因此,大概您的JB.json包含“ //”样式的注释。最简单的解决方法可能是首先过滤掉前两行(例如使用sed(或jq!))。

这是仅jq的解决方案:

< JB.json jq -Rr 'select( test("^//")|not)' |
   jq '.[] | .company'