Tenho idade suficiente para me lembrar de quando pensávamos que o XML mudaria o mundo da programação… então o JSON nos salvou daquele inferno. Analisar e consultar dados JSON é uma tarefa fundamental para a qual todos nós codificamos, mas, às vezes, eu só quero obter alguns dados localmente com o mínimo de esforço. Acabei de conhecer uma biblioteca realmente incrível para fazer isso: jq. Vamos dar uma olhada em algumas coisas legais que podemos fazer com o jq!

Comece instalando jq por meio de um utilitário como o Homebrew:

brew install jq

Com o Homebrew instalado e um actors.json local, vamos trabalhar para extrair alguns dados!

// Using this JSON file:
// https://raw.githubusercontent.com/algolia/datasets/master/movies/actors.json

// Get the 10th item in an array
cat actors.json | jq '.[10]'
// {
//   "name": "Dwayne Johnson",
//   "rating": 1568,
//   "image_path": "/akweMz59qsSoPUJYe7QpjAc2rQp.jpg",
//   "alternative_name": "The Rock",
//   "objectID": "551486400"
// }

// Get a property from the 10th item in array
// > "Dwayne Johnson"

// Get multiple items
jq '.[10:12]'

// Get items up to the 12th position
jq '.[:12]'

// Get items after the 12th position
jq '.[12:]'

// Get an array of properties from all objects
jq '.[].name'
// > ["William Shatner", "Will Ferrell", ...]

// Create an object with only properties I want
jq '{ name: .[].name, rating: .[].rating}'

// Built in functions!
jq 'sort'
jq 'length'
jq 'reverse'

Há muitas outras maneiras de usar o jqPor isso, recomendo fortemente que o senhor dê uma olhada em JQ Select Explained (Explicação do JQ Select): Seleção de elementos do JSON. Vou manter o jq à mão no futuro próximo, pois será de grande valia para o senhor!