comando JQ para recuperar apenas os títulos

0

Eu tenho este arquivo json:

"[{\"id\":188457,\"title\":\"Painted Dragon Tea Mug with Lid\",\"slug\":\"painted-dragon-tea-mug-with-lid\",\"image\":\"https:\\/\\/thievemedia.imgix.net\\/2018\\/09\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"full_image_url\":\"https:\\/\\/s3.amazonaws.com\\/thieve-media\\/wp-content\\/uploads\\/2018\\/09\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"large_image_url\":\"https:\\/\\/s3.amazonaws.com\\/thieve-media\\/wp-content\\/uploads\\/2018\\/09\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"medium_image_url\":\"https:\\/\\/s3.amazonaws.com\\/thieve-media\\/wp-content\\/uploads\\/2018\\/09\\/painted-dragon-tea-mug-with-lid-featured-1.jpg\",\"original_price\":\"19.78\",\"price\":\"13.65\",\"discount\":\"30.99\",\"rating\":\"4.7\",\"total_orders\":\"10\",\"promotion_url\":\"https:\\/\\/api.thieve.co\\/view?id=MzI4NTk0Njg0MDE=\",\"product_like_count\":\"100\",\"product_user_likes\"}]

Como posso extrair apenas os títulos com jq?

    
por Kerim Güleç 09.10.2018 / 18:16

1 resposta

2

A consulta '.[] | {title}' dará a você apenas os elementos de título (mas observe que seu documento de amostra parece estar malformado), supondo que seu documento esteja em um arquivo chamado data.json :

$ jq '.[] | {title}' data.json
{
    "title": "Painted Dragon Tea Mug with Lid"
}

A primeira parte da consulta, '.[]' , retorna cada objeto na matriz de nível superior e eles são enviados para a segunda parte, usando o operador | . A segunda parte da consulta, {title} , simplesmente extrai o elemento "título" do objeto.

Se você quiser apenas o título, como uma string, sem agrupar os resultados em um objeto JSON, use-o:

$ jq '.[] | .["title"]' data.json
"Painted Dragon Tea Mug with Lid"

O tutorial jq oferece uma boa visão geral da linguagem de consulta.

    
por 09.10.2018 / 20:05

Tags