Jq: 教程失败:curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq'.'

创建于 2016-03-16  ·  3评论  ·  资料来源: stedolan/jq

我在 Windows 10 上运行这个,电源外壳。 我什至从 curl 调用中取出输出并将其复制到您的在线测试中 - 两者都失败了。 据我所知,jq 只能接受 JSON 输入,而其他语法的错误是错误的。

我在电源外壳中看到的问题
解析错误:第 3 行第 11 列的数字文字无效

我在 jq play 中看到的问题:
解析错误:第 1 行第 11 列的数字文字无效

最有用的评论

问题是从 Powershell 运行时 curl 使用 Invoke-WebRequest cmdlet(其别名是 curl 和 wget)。 cmdlet 的响应不仅仅是响应的 json 内容。 但它是这种格式。

状态代码:200
状态描述:OK
内容:[{"sha":"0b8218515eabf1a967eba0dbcc7a0e5ae031a509","commit":{"author":{"name":"Nicolas Williams","e
邮件":" [email protected] ","date":"2016-03-21T22:43:01Z"},"committer":{"name":"Nicolas
威廉姆斯”、“...
原始内容:HTTP/1.1 200 OK
状态:200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining:52
X-RateLimit-重置:1470350889
变化:接受,接受编码
X-GitHub-Media-Type:github.v3; 格式=json
关联: 形式 : {}
标题:{[Status, 200 OK], [X-RateLimit-Limit, 60], [X-RateLimit-Remaining, 52], [X-RateLimit-Reset,
1470350889]...}
图片 : {}
输入字段:{}
链接:{}
ParsedHtml : mshtml.HTMLDocumentClass
原始内容长度:14852

因此,您需要使用返回对象的 Content 属性将其通过管道传输到 jq。
将您的命令行更改为
curl -Uri ' https://api.github.com/repos/stedolan/jq/commits?per_page=5 ' | 选择内容 - 展开内容 | jq -C '.'

这将起作用。

单引号和双引号字符串也都有效。

所有3条评论

@lbrader - 我获取了您提供的 curl 命令的输出并将其提供给 jplay.org,没有发生任何意外。 我突然想到,您的命令行命令可能没有适应 Windows 环境。 例如,您可能需要使用双引号,或者在“.”的情况下,您可以简单地省略引号。

问题是从 Powershell 运行时 curl 使用 Invoke-WebRequest cmdlet(其别名是 curl 和 wget)。 cmdlet 的响应不仅仅是响应的 json 内容。 但它是这种格式。

状态代码:200
状态描述:OK
内容:[{"sha":"0b8218515eabf1a967eba0dbcc7a0e5ae031a509","commit":{"author":{"name":"Nicolas Williams","e
邮件":" [email protected] ","date":"2016-03-21T22:43:01Z"},"committer":{"name":"Nicolas
威廉姆斯”、“...
原始内容:HTTP/1.1 200 OK
状态:200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining:52
X-RateLimit-重置:1470350889
变化:接受,接受编码
X-GitHub-Media-Type:github.v3; 格式=json
关联: 形式 : {}
标题:{[Status, 200 OK], [X-RateLimit-Limit, 60], [X-RateLimit-Remaining, 52], [X-RateLimit-Reset,
1470350889]...}
图片 : {}
输入字段:{}
链接:{}
ParsedHtml : mshtml.HTMLDocumentClass
原始内容长度:14852

因此,您需要使用返回对象的 Content 属性将其通过管道传输到 jq。
将您的命令行更改为
curl -Uri ' https://api.github.com/repos/stedolan/jq/commits?per_page=5 ' | 选择内容 - 展开内容 | jq -C '.'

这将起作用。

单引号和双引号字符串也都有效。

| Select Content -Expand Content

是的,这是工作

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ghost picture ghost  ·  4评论

rclod picture rclod  ·  4评论

neowulf picture neowulf  ·  3评论

tbelaire picture tbelaire  ·  4评论

rokka-n picture rokka-n  ·  4评论