Jq: Tutorial falhou: curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'

Criado em 16 mar. 2016  ·  3Comentários  ·  Fonte: stedolan/jq

Estou executando isso no windows 10, power shell. Eu até peguei o out put do curl invoke e copiei para o seu teste online - ambos falham. Pelo que eu posso dizer, jq só pode aceitar a entrada JSON e o erro é na outra sintaxe.

Problema que vejo no power shell
erro de análise: literal numérico inválido na linha 3, coluna 11

Problema que vejo no jogo jq:
erro de análise: literal numérico inválido na linha 1, coluna 11

Comentários muito úteis

O problema é que o curl quando executado do Powershell usa o cmdlet Invoke-WebRequest (cujos aliases são curl & wget). A resposta do cmdlet não é apenas o conteúdo json da resposta. Mas é neste formato.

StatusCode: 200
Descrição do status: OK
Conteúdo: [{"sha": "0b8218515eabf1a967eba0dbcc7a0e5ae031a509", "commit": {"autor": {"nome": "Nicolas Williams", "e
mail ":" [email protected] "," date ":" 2016-03-21T22: 43: 01Z "}," committer ": {" name ":" Nicolas
Williams "," ...
RawContent: HTTP / 1.1 200 OK
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 52
X-RateLimit-Reset: 1470350889
Variar: Aceitar, Aceitar-Codificação
Tipo de mídia X-GitHub: github.v3; format = json
Ligação: Formulários: {}
Cabeçalhos: {[Status, 200 OK], [X-RateLimit-Limit, 60], [X-RateLimit-Remaining, 52], [X-RateLimit-Reset,
1470350889] ...}
Imagens: {}
InputFields: {}
Links: {}
ParsedHtml: mshtml.HTMLDocumentClass
RawContentLength: 14852

Portanto, você precisaria usar o atributo de retorno de Conteúdo do Objeto para canalizá-lo para jq.
Mude sua linha de comando para
curl -Uri ' https://api.github.com/repos/stedolan/jq/commits?per_page=5 ' | Selecione Conteúdo - Expandir Conteúdo | jq -C '.'

Isso vai funcionar.

Além disso, tanto strings simples como entre aspas duplas funcionam.

Todos 3 comentários

@lbrader - Peguei a saída do comando curl que você deu e enviei para jplay.org sem incidentes. Ocorreu-me que talvez você não tenha adaptado seus comandos de linha de comando ao ambiente do Windows. Por exemplo, provavelmente você precisará usar aspas duplas ou, no caso de ".", Poderá simplesmente omitir as aspas.

O problema é que o curl quando executado do Powershell usa o cmdlet Invoke-WebRequest (cujos aliases são curl & wget). A resposta do cmdlet não é apenas o conteúdo json da resposta. Mas é neste formato.

StatusCode: 200
Descrição do status: OK
Conteúdo: [{"sha": "0b8218515eabf1a967eba0dbcc7a0e5ae031a509", "commit": {"autor": {"nome": "Nicolas Williams", "e
mail ":" [email protected] "," date ":" 2016-03-21T22: 43: 01Z "}," committer ": {" name ":" Nicolas
Williams "," ...
RawContent: HTTP / 1.1 200 OK
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 52
X-RateLimit-Reset: 1470350889
Variar: Aceitar, Aceitar-Codificação
Tipo de mídia X-GitHub: github.v3; format = json
Ligação: Formulários: {}
Cabeçalhos: {[Status, 200 OK], [X-RateLimit-Limit, 60], [X-RateLimit-Remaining, 52], [X-RateLimit-Reset,
1470350889] ...}
Imagens: {}
InputFields: {}
Links: {}
ParsedHtml: mshtml.HTMLDocumentClass
RawContentLength: 14852

Portanto, você precisaria usar o atributo de retorno de Conteúdo do Objeto para canalizá-lo para jq.
Mude sua linha de comando para
curl -Uri ' https://api.github.com/repos/stedolan/jq/commits?per_page=5 ' | Selecione Conteúdo - Expandir Conteúdo | jq -C '.'

Isso vai funcionar.

Além disso, tanto strings simples como entre aspas duplas funcionam.

| Select Content -Expand Content

sim é trabalho

Esta página foi útil?
0 / 5 - 0 avaliações