¿Alguien puede recomendar un analizador JSON Unix (elija su sabor) que podría usarse para introspectar valores de una respuesta JSON en una tubería?
json
parsing
unix
configuration
Jé Queue
fuente
fuente
npm install -g ramda-cli
Respuestas:
Puede usar este analizador de línea de comandos (que podría poner en un alias bash si lo desea), usando módulos integrados en el núcleo de Perl:
fuente
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
Prefiero
python -m json.tool
que parece estar disponible por defecto en la mayoría de los sistemas operativos * nix por defecto.Pero debe tenerse en cuenta que esto ordenará todas las claves alfabéticamente, lo cual es o puede ser algo bueno en donde el json fue generado por algún lenguaje que usaba HashMaps desordenados ...
fuente
json.tool
es solo una mano corta para imprimir bastante json. Si necesita extraer / manipular datos json en un script de shell, usaría lojq
que esjson.tool
diez veces al día. Creo que leí mal el significado de "introspec" en la pregunta, gracias por señalarme.json.tool
solo hace dos cosas: validar y json de impresión bonita. NO introspecta valores en el json como lojq
hace.Si está buscando una herramienta compilada C portátil:
http://stedolan.github.com/jq/
Desde el sitio web:
Tutorial : http://stedolan.github.com/jq/tutorial/
Manual : http://stedolan.github.com/jq/manual/
Descargar : http://stedolan.github.com/jq/download/
fuente
apt install jq
.jq
.He creado un módulo diseñado específicamente para la manipulación JSON de línea de comandos:
https://github.com/ddopson/underscore-cli
Te permite hacer cosas poderosas con mucha facilidad:
Y tiene uno de los mejores formateadores JSON de "espacio en blanco inteligente" disponibles:
Si tiene alguna solicitud de función, comente esta publicación o agregue un problema en github. Me gustaría priorizar las funciones que necesitan los miembros de la comunidad.
fuente
wget
cada URL.underscore
para analizar json anidados que tienen objetos y matrices anidados?Checkout TickTick .
Es un verdadero analizador Bash JSON.
fuente
También hay kit de herramientas de procesamiento de línea de comandos JSON si tiene node.js y npm en su pila.
Y otro comando "json" para masajear JSON en su línea de comando Unix.
Y aquí están las otras alternativas:
Relacionado: ¿ Herramienta de línea de comando para analizar la entrada JSON para Unix?
fuente
npm install json
.json
parece ser tomado por un paquete completamente diferente ahora.¿Alguien mencionó Jshon o JSON.sh?
https://github.com/keenerd/jshon
canalice json hacia él, y atraviesa los objetos json e imprime la ruta al objeto actual (como una matriz JSON) y luego el objeto, sin espacios en blanco.
http://kmkeen.com/jshon/
Jshon carga el texto json de stdin, realiza acciones, luego muestra la última acción en stdout y también se hizo parte de la canalización de procesamiento de texto habitual.
fuente
brew install jshon
,cat *.json | jshon
Puede probar jsawk como se sugiere en esta respuesta .
Realmente podrías crear un script de Python rápido para hacer esto.
fuente
Para Bash / Python , aquí hay un contenedor básico alrededor de Python
simplejson
:Realmente solo maneja el estilo de datos de diccionario anidado, pero funciona para lo que necesitaba, y es útil para recorrer el json. Probablemente podría adaptarse al gusto.
De todos modos, algo de cosecha propia para aquellos que no desean obtener otra dependencia externa. Excepto por python, por supuesto.
Ex.
json_parser {field1} {field2}
correríaprint myjson['{field1}']['{field2}']
, produciendo las claves o los valores asociados con{field2}
, separados por espacios.fuente
Acabo de hacer jkid, que es un pequeño explorador json de línea de comandos que hice para explorar fácilmente grandes objetos json. Los objetos se pueden explorar "transversalmente" y existe una opción de "vista previa" para evitar el desbordamiento de la consola.
fuente
jkid
en mac?