JSON está em toda parte hoje em dia: arquivos de configuração, APIs web, formatos de data e muito mais. Também se tornou popular entre os fabricantes de ferramentas, que criaram muitos programas diferentes para ler, modificar e processar JSON para uma ampla variedade de finalidades.
HTG Wrapped 2025: 24 dias de tecnologia
24 dias de nossos hardwares, gadgets e tecnologia favoritos
Seu navegador da web, para visualização básica
Vamos começar com a ferramenta que você provavelmente mais usa e que está disponível em quase todos os seus dispositivos: seu navegador. Como muitos arquivos JSON são originados on-line, por que não usar seu navegador como uma ferramenta conveniente para visualizá-los?
A experiência padrão do Chrome é básica, mas pelo menos oferece uma bela opção de impressão para formatar JSON de maneira adequada:
Você pode obter muito mais funcionalidades de uma extensão de navegador, como JSON Viewer. Isso adiciona destaque de sintaxe, números de linha, seções recolhíveis e URLs com hiperlinks, entre outros recursos.
Outros navegadores podem oferecer esse tipo de funcionalidade integrada. O Firefox, por exemplo, apresenta arquivos JSON em um formato muito agradável de consumir:
A ferramenta fx, para visualização no terminal
Em vez de visualizar em seu navegador, normalmente será melhor usar uma ferramenta de terminal. Felizmente, um benefício do JSON é seu formato legível por humanos, portanto você não deverá ter problemas para ler um arquivo JSON com algo como cat.
Se você quiser atualizar um pouco a experiência, existem muitas ferramentas de linha de comando que você pode usar, conforme confirmado pelo Homebrew:
Meu favorito pessoal é fx, que é um pouco como um pager interativo com tratamento especial para arquivos JSON. Suportando uma série de atalhos de teclado, a ferramenta permite navegar rapidamente em arquivos JSON, com comandos para expandir ou contrair estruturas como matrizes e objetos. Você também pode pesquisar texto nos dados.
jless é uma ferramenta muito semelhante, mas prefiro a aparência do fx, que também possui alguns recursos avançados de processamento.
Embora fx seja um visualizador JSON, você pode usar seu v atalho para abrir o arquivo JSON atual em seu editor e fazer algumas alterações rápidas.
Um editor de texto, para ler e modificar
Falando em edição, você ficará satisfeito em saber que qualquer editor de texto decente lidará com arquivos JSON. Quer você use Vim, Sublime Text ou VS Code, ele suportará JSON.
Além do mais, a maioria dos editores fornecerá excelente destaque de sintaxe do JSON pronto para uso. Veja este exemplo de um arquivo JSON simples aberto no Zed:
Zed usa cores para distinguir chaves de strings e números. Sua excelente formatação automática também é valiosa quando se trata de JSON, principalmente porque limpa quaisquer vírgulas finais, que são JavaScript legais, mas inválidas em dados JSON. Zed também oferece suporte a JSONC, o que significa que você pode injetar comentários diretamente em seus dados JSON.
Um aplicativo da web para formatar ou validar
De volta à web, há uma abundância de ferramentas para formatação JSON. Esses são aplicativos da web muito simples de criar, mas ao mesmo tempo muito úteis, por isso não é de admirar que existam tantos.
JSONLint é uma opção sólida e de código aberto que destaca erros de sintaxe:
Há também JsonPretty, JSON Formatter, Json Prettier e muito mais.
Se você usa o DuckDuckGo, nem precisa sair do seu mecanismo de busca para validar o JSON. Este concorrente do Google possui um validador básico integrado; basta pesquisar por “validador json” e você o verá incorporado nos resultados:
Embora todos os formatadores realizem a validação da sintaxe básica do seu JSON, alguns vão um pouco mais longe e validam a semântica também, usando o esquema JSON. Esta especificação permite descrever a estrutura pretendida dos seus dados JSON no próprio JSON. Uma ferramenta como JSONSchema.dev pode então validar seu JSON usando-o:
O utilitário jq, para consultar e editar
Sem dúvida, o rei das ferramentas de linha de comando JSON, jq é o canivete suíço que você deve usar quando quiser manipular dados JSON sem usar uma linguagem de programação completa.
jq pega JSON como entrada e o transforma de acordo com os filtros que você fornece. Como é uma ferramenta de linha de comando, você pode canalizar a entrada de um arquivo ou outro comando, como curl, para buscar dados da web. A API GitHub tem vários endpoints abertos que respondem com saída JSON, por isso é ótimo para testes:
Você pode canalizar a saída deste comando para jq e usar o filtro mais simples possível para formatá-lo:
curl https://api.github.com/rate_limit -s | jq '.'
Observe que o GitHub já retorna JSON bem formatado, então o efeito jq é realçar a sintaxe da saída usando cores:
Mas este é apenas o começo do que você pode conseguir com filtros jq. Por exemplo, você pode extrair um valor específico:
$ curl https://api.github.com/rate_limit -s | jq '.resources.code_search.remaining' 41
Você pode usar filtros mais complicados, como este que busca os nomes dos recursos:
$ curl https://api.github.com/rate_limit -s | jq '.resources | keys[]' "code_search" "core" "graphql" "integration_manifest" "search"
jq usa o operador pipe (|) para encadear filtros; certifique-se de não confundir isso com o uso de tubo pelo shell!
JavaScript, para realmente programar com ele
Felizmente, você pode fazer absolutamente qualquer coisa imaginável com JSON, mesmo que o jq ainda não consiga suportá-lo. Afinal, JSON é JavaScript Object Notation, então não deveria ser uma surpresa que ele se integra muito bem a essa linguagem.
A maioria das funcionalidades está relacionada ao objeto JSON integrado, que fornece um par de funções úteis:
-
JSON.parse(text): esta função pega uma string JSON e a converte em dados JavaScript nativos. -
JSON.stringify(value): esta função faz o oposto, pegando um valor JavaScript e convertendo-o em uma string JSON.
Usando essas duas funções, você pode converter de e para JSON sempre que precisar. Enquanto isso, a API fetch pode processar JSON por meio do objeto Response json método. O padrão de uso geral é assim:
fetch(url) .then(response => response.json()) .then(data => // use data just like any other JS object))
Assim, por exemplo, você pode usar o código a seguir para buscar dados da API do GitHub para exibir um resumo do commit mais recente em um repositório:
fetch("https://api.github.com/repos/jqlang/jq/commits?per_page=1") .then(response => response.json()) .then(data => alert( data[0].commit.author.name + "n" + data[0].commit.author.date + "n" + data[0].commit.message))
Execute este código e você verá uma mensagem construída diretamente a partir dos dados que você buscou na API:
Outras linguagens, para ainda mais programação
Finalmente, embora o JSON tenha sido originado do JavaScript, você também pode usá-lo com outras linguagens. Na verdade, a maioria das linguagens tem excelente suporte para JSON, incluindo Python:
obj = { 'name': 'John' } str = json.dumps(obj) print(str) # {"name": "John"} obj2 = json.loads(str) print(obj2['name']) # John
Ruby tem uma interface quase idêntica; apenas usa os nomes dumps e loads:
json = '{ "name": "John" }' ruby = JSON.parse(json) puts ruby # {"name" => "John"} json = JSON.generate(ruby) puts json # {"name":"John"}
E Go tem um par semelhante de métodos, chamado Unmarshal e Marshalmesmo que sua sintaxe seja um pouco mais detalhada:
byt := []byte(`{ "name": "John" }`) var dat map[string]interface{} if err := json.Unmarshal(byt, &dat); err != nil { panic(err) } fmt.Println(dat) // map[name:John] mapD := map[string]string{"name": "John"} mapB, _ := json.Marshal(mapD) fmt.Println(string(mapB)) // {"name":"John"}
JSON é uma linguagem tão simples que os desenvolvedores acharam fácil criar uma variedade de ferramentas para suportá-la. Se você trabalha regularmente com dados JSON, vale a pena explorar as opções disponíveis para tornar sua vida o mais fácil possível.