Alguém pode recomendar um analisador JSON do Unix (escolha seu sabor) que possa ser usado para examinar valores de uma resposta JSON em um pipeline?
json
parsing
unix
configuration
Jé Queue
fonte
fonte
npm install -g ramda-cli
Respostas:
Você pode usar esse analisador de linha de comando (que você pode colocar em um alias do bash, se quiser), usando módulos integrados no núcleo do Perl:
fonte
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
Prefiro o
python -m json.tool
que parece estar disponível por padrão na maioria dos sistemas operacionais * nix por padrão.Mas deve-se notar que isso ordenará todas as chaves em ordem alfabética, o que é ou pode ser uma coisa boa em que o json foi gerado por algum idioma que usou HashMaps não-ordenados ...
fonte
json.tool
é apenas uma mão curta para imprimir bonito json. Se você precisa extrair / manipular JSON dados em um shell script, gostaria de usarjq
que é puro incrível o que é faz ...json.tool
dez vezes por dia. Acho que interpretei mal o significado de "introspec" na pergunta, obrigado por apontar.json.tool
faz apenas duas coisas: validar e imprimir bonito json. NÃO introspectiva valores no json comojq
faz.Se você está procurando uma ferramenta compilada C portátil:
http://stedolan.github.com/jq/
A partir do site:
Tutorial : http://stedolan.github.com/jq/tutorial/
Manual : http://stedolan.github.com/jq/manual/
Faça o download : http://stedolan.github.com/jq/download/
fonte
apt install jq
.jq
.Eu criei um módulo projetado especificamente para manipulação JSON da linha de comando:
https://github.com/ddopson/underscore-cli
Ele permite que você faça coisas poderosas com muita facilidade:
E possui um dos melhores formatadores JSON de "espaço em branco inteligente" disponíveis:
Se você tiver alguma solicitação de recurso, comente esta postagem ou adicione um problema no github. Ficaria feliz em priorizar os recursos necessários aos membros da comunidade.
fonte
wget
cada URL.underscore
para analisar json aninhado com objetos e matrizes aninhados?TickTick do checkout .
É um verdadeiro analisador Bash JSON.
fonte
Há também kit de ferramentas de processamento de linha de comando JSON se você tiver node.js e npm em sua pilha.
E outro comando "json" para massagear JSON na sua linha de comando do Unix.
E aqui estão as outras alternativas:
Relacionado: Ferramenta de linha de comando para analisar a entrada JSON do Unix?
fonte
npm install json
.json
parece ser assumido por um pacote completamente diferente agora.Alguém mencionou Jshon ou JSON.sh?
https://github.com/keenerd/jshon
canalize o json para ele e ele percorre os objetos json e imprime o caminho para o objeto atual (como uma matriz JSON) e depois o objeto, sem espaço em branco.
http://kmkeen.com/jshon/ O
Jshon carrega o texto json do stdin, executa ações, exibe a última ação no stdout e também foi criado para fazer parte do pipeline de processamento de texto usual.
fonte
brew install jshon
,cat *.json | jshon
Você pode tentar o jsawk, conforme sugerido nesta resposta .
Na verdade, você pode criar um script python rápido para fazer isso.
fonte
Para Bash / Python , aqui está um wrapper básico em torno do python
simplejson
:Ele realmente lida apenas com o estilo de dados do dicionário aninhado, mas funciona para o que eu precisava e é útil para percorrer o json. Provavelmente poderia ser adaptado ao gosto.
Enfim, algo caseiro para aqueles que não desejam obter mais uma dependência externa. Exceto por python, é claro.
Ex.
json_parser {field1} {field2}
seria executadoprint myjson['{field1}']['{field2}']
, produzindo as chaves ou os valores associados a{field2}
, separados por espaço.fonte
Acabei de criar o jkid, que é um pequeno json explorer de linha de comando que fiz para explorar facilmente objetos grandes do json. Os objetos podem ser explorados "transversalmente" e existe uma opção de "visualização" para evitar o estouro do console.
fonte
jkid
no mac?